toUpperCase в Java не работает - PullRequest
       0

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

11 голосов
/ 11 декабря 2011

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

String c = "IceCream";

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

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

Ответы [ 5 ]

32 голосов
/ 11 декабря 2011

код

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

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

12 голосов
/ 11 декабря 2011

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

String c = "IceCream";
String d = c.toUpperCase();
System.out.println(c); // prints IceCream
System.out.println(d); // prints ICECREAM
9 голосов
/ 11 декабря 2011

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

String c = "IceCream";
c = c.toUpperCase();
3 голосов
/ 11 декабря 2011

Вы должны использовать это так:

String c = "IceCream";
String upper_c = c.toUpperCase();
0 голосов
/ 11 декабря 2011

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

String c = "IceCream";
return c.toUpperCase(Locale.ENGLISH);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...