Java Java String Format convertToJavaIdentity(String original, boolean firstCharacterUpperCase, boolean normalize)

Here you can find the source of convertToJavaIdentity(String original, boolean firstCharacterUpperCase, boolean normalize)

Description

convert To Java Identity

License

Apache License

Declaration

public static String convertToJavaIdentity(String original,
            boolean firstCharacterUpperCase, boolean normalize) 

Method Source Code

//package com.java2s;
/*/*from ww  w  .ja  va2  s  . c o m*/
 * Copyright (C) 2016 Singular Studios (a.k.a Atom Tecnologia) - www.opensingular.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import java.text.Normalizer;

public class Main {
    public static String convertToJavaIdentity(String original,
            boolean normalize) {
        return convertToJavaIdentity(original, false, normalize);
    }

    public static String convertToJavaIdentity(String original,
            boolean firstCharacterUpperCase, boolean normalize) {
        String normalized = normalize ? normalize(original) : original;
        StringBuilder sb = new StringBuilder(normalized.length());
        boolean nextUpper = false;
        for (char c : normalized.toCharArray()) {
            if (sb.length() == 0) {
                if (Character.isJavaIdentifierStart(c)) {
                    c = firstCharacterUpperCase ? Character.toUpperCase(c)
                            : Character.toLowerCase(c);
                    sb.append(c);
                }
            } else if (Character.isJavaIdentifierPart(c)) {
                if (nextUpper) {
                    c = Character.toUpperCase(c);
                    nextUpper = false;
                }
                sb.append(c);
            } else if (Character.isWhitespace(c)) {
                nextUpper = true;
            }
        }
        return sb.toString();
    }

    public static String normalize(String original) {
        return Normalizer.normalize(original, Normalizer.Form.NFD)
                .replaceAll("[^\\p{ASCII}]", "");
    }
}

Related

  1. convertToJavaClassname(final String classname, final Map replacement)
  2. convertToJavaUnicode(String input, Character start1, Character end1, Character start2, Character end2)
  3. toJava(CharSequence str)
  4. toJava(final double[] doubles)
  5. toJava(String name)