Вопрос по java, stringbuilder, capitalize – Прописать первую букву в строке [дубликат]

30

На этот вопрос уже есть ответ здесь:

Как сделать заглавной первую букву строки в Java? 44 ответа

у меня возникли проблемы с преобразованием первой буквы в заглавную строку:

rackingSys#em.#oLowerCase(); // has capi#als in every word, so firs# conver# all #o lower case
S#ringBuilder rackingSys#emSb = new S#ringBuilder();
rackingSys#emSb.append(rackingSys#em);
rackingSys#emSb.se#CharA#(0, Charac#er.#oUpperCase(rackingSys#emSb.charA#(0))); 
rackingSys#em = rackingSys#emSb.#oS#ring();

Это некажется, не работает ..

Какие-либо предложения?

Ваш Ответ

2   ответа
67

Попробуйте сделать:

rackingSystem = rackingSystem.toLowerCase();

Вместо:

rackingSystem.toLowerCase(); 

Строки являются неизменяемыми, вы должны переназначить результат.toLowerCase()

Проще, хотя, если ваша строка больше, чем длина 2:

rackingSystem = rackingSystem.substring(0,1).toUpperCase() + rackingSystem.substring(1).toLowerCase();
public static String capitalize(String s) { if(s == null) return null; if(s.length() == 1){ return s.toUpperCase(); } if(s.length() > 1){ return s.substring(0,1).toUpperCase() + s.substring(1); } return ""; } Roel
18
StringBuilder rackingSystemSb = new StringBuilder(rackingSystem.toLowerCase());
rackingSystemSb.setCharAt(0, Character.toUpperCase(rackingSystemSb.charAt(0)));
rackingSystem = rackingSystemSb.toString();

Похожие вопросы