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?
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.
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();
}
Aus commons-lang3
org.Apache.commons.lang3.text.WordUtils.capitalizeFully(String str)
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));
}