Если я использую функцию 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);