ToUpperCase в Java не работает

У меня есть строка:

String c = "IceCream";

Если я использую функцию toUpperCase(), тогда она возвращает ту же строку, но я хочу получить "ICECREAM".

Где проблема?

Ответ 1

Код

String c = "IceCream";
String upper = c.toUpperCase();
System.out.println(upper);

правильно печатает "ICECREAM". Однако исходная строка c не изменяется. Строки в Java immutable, поэтому все операции над строкой возвращают новую копию.

Ответ 2

Ожидаете ли вы, что исходная переменная c была изменена на toUpperCase()? Строки неизменяемы; такие методы, как .toUpperCase(), возвращают новые строки, оставляя исходный un-modified:

String c = "IceCream";
String d = c.toUpperCase();
System.out.println(c); // prints IceCream
System.out.println(d); // prints ICECREAM

Ответ 3

Объект нельзя изменить, поскольку String является неизменным. Тем не менее, вы можете иметь опорную точку для нового экземпляра, который является прописным:

String c = "IceCream";
c = c.toUpperCase();

Ответ 4

Вы должны использовать его следующим образом:

String c = "IceCream";
String upper_c = c.toUpperCase();

Ответ 5

Это может быть проблема с вашим языком. Попробуйте:

String c = "IceCream";
return c.toUpperCase(Locale.ENGLISH);