Ich frage mich, warum Character.toUpperCase/toLowerCase
hat keine Locale-Parameter wie String.toUpperCase/toLowerCase
.Warum Java Character.toUpperCase/toLowerCase keine Locale-Parameter wie String.toUpperCase/toLowerCase hat
Ich habe zuerst Großbuchstaben eines Textes, der in jeder Sprache sein kann. Ich habe 2 Lösungen:
Verwenden
Character.toUpperCase
String text = "stack overflow"; StringBuilder sb = new StringBuilder(text); sb.setCharAt(0, Character.toUpperCase(sb.charAt(0))); // No Locale parameter here. String out = sb.toString(); //Out: Stack overflow
Verwenden
String.toUpperCase
Locale myLocale = new Locale(locateId); String text = "stack overflow"; String text1 = text.substring(0,1).toUpperCase(myLocale); String text2 = text.substring(1); String out = text1 + text2; // Out: Stack overflow
Für meine Locale. Beides hat das gleiche Ergebnis.
Meine Frage ist:
Da der Text in jeder Sprache sein kann. Welchen Weg soll ich benutzen?
Warum
Character.toUpperCase/toLowerCase
keinen Gebietsschema-Parameter hat, da es keinen großen Unterschied zwischenCharacter.toUpperCase/toLowerCase
undString.toUpperCase/toLowerCase
gibt, da String ein Array von Zeichen ist.
Beachten Sie, dass das Javadoc vorschlägt, 'String's Version für Gebietsschema-sensitive Zuordnungen zu verwenden. –