Мне интересно, почему Character.toUpperCase/toLowerCase
не имеет параметра Locale, такого как String.toUpperCase/toLowerCase
.
Я должен сначала прописные буквы текста, который может быть на любом языке. У меня есть 2 решения:
Используйте
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
Используйте
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
Для моей локали. Оба пути имеют одинаковый результат.
Мой вопрос:
Так как текст может быть на любом языке. Какой способ я должен использовать?
Почему
Character.toUpperCase/toLowerCase
не имеет параметра Locale, потому что междуCharacter.toUpperCase/toLowerCase
иString.toUpperCase/toLowerCase
нет большой разницы, потому что String - это массив символов.
String
для сопоставлений, чувствительных к локали. - person Sotirios Delimanolis   schedule 22.10.2014