Mi chiedo il motivo per cui Character.toUpperCase/toLowerCase
non ha parametri Locale come String.toUpperCase/toLowerCase
.Perché Java Character.toUpperCase/toLowerCase non ha parametri Locale come String.toUpperCase/toLowerCase
Devo prima di tutto il testo che può essere in qualsiasi lingua. Ho 2 soluzioni:
Utilizzare
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
Utilizzare
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
Per il mio Locale. In entrambi i casi ha lo stesso risultato.
La mia domanda è:
Dal momento che il testo può essere in qualsiasi lingua. Quale modo dovrei usare?
Perché
Character.toUpperCase/toLowerCase
non ha parametri Locale perché non c'è molta differenza traCharacter.toUpperCase/toLowerCase
eString.toUpperCase/toLowerCase
perché String è una matrice di Caratteri.
Si noti che javadoc suggerisce di utilizzare la versione di 'String' per i mapping sensibili delle impostazioni internazionali. –