web-dev-qa-db-de.com

Konvertieren Sie eine Zeichenfolge in Java oder Title Case in "Modified Camel Case", wie es sonst genannt wird

Ich möchte eine beliebige Zeichenfolge in einen modifizierten Camel- oder Titel-Fall konvertieren, indem ich vordefinierte Bibliotheken verwende, anstatt eigene Funktionen zu schreiben. 

Zum Beispiel "HI tHiS is SomE Statement" bis "Hi This Is Some Statement" 

Regex oder jede Standardbibliothek hilft mir dabei.

Ich habe bestimmte Bibliotheksfunktionen in Eclipse gefunden, z. B. STRING.toCamelCase();. Gibt es so etwas?

13
takrishna

Ich habe das Folgende verwendet, um dieses Problem zu lösen.

import org.Apache.commons.lang.StringUtils;
StringUtils.capitalize(MyString);

Vielen Dank an Ted Hopp, der zu Recht darauf hingewiesen hat, dass die Frage TITLE CASE anstelle von modifiziertem CAMEL CASE hätte sein sollen.

Camel Case enthält normalerweise keine Leerzeichen zwischen den Wörtern.

14
takrishna

Sie können die Methode dazu einfach schreiben:

  public static String toCamelCase(final String init) {
    if (init == null)
        return null;

    final StringBuilder ret = new StringBuilder(init.length());

    for (final String Word : init.split(" ")) {
        if (!Word.isEmpty()) {
            ret.append(Character.toUpperCase(Word.charAt(0)));
            ret.append(Word.substring(1).toLowerCase());
        }
        if (!(ret.length() == init.length()))
            ret.append(" ");
    }

    return ret.toString();
}
17
Florent Bayle

Aus commons-lang3

org.Apache.commons.lang3.text.WordUtils.capitalizeFully(String str)
15
superEb

Verweisen:

    static String toCamelCase(String s){
           String[] parts = s.split(" ");
           String camelCaseString = "";
           for (String part : parts){
               if(part!=null && part.trim().length()>0)
              camelCaseString = camelCaseString + toProperCase(part);
               else
                   camelCaseString=camelCaseString+part+" ";   
           }
           return camelCaseString;
        }

        static String toProperCase(String s) {
            String temp=s.trim();
            String spaces="";
            if(temp.length()!=s.length())
            {
            int startCharIndex=s.charAt(temp.indexOf(0));
            spaces=s.substring(0,startCharIndex);
            }
            temp=temp.substring(0, 1).toUpperCase() +
            spaces+temp.substring(1).toLowerCase()+" ";
            return temp;

        }
  public static void main(String[] args) {
     String string="HI tHiS is   SomE Statement";
     System.out.println(toCamelCase(string));
  }
1
NFE