【发布时间】:2011-12-11 14:45:03
【问题描述】:
我有一个字符串:
String c = "IceCream";
如果我使用toUpperCase() 函数,那么它会返回相同的字符串,但我想得到"ICECREAM"。
问题出在哪里?
【问题讨论】:
我有一个字符串:
String c = "IceCream";
如果我使用toUpperCase() 函数,那么它会返回相同的字符串,但我想得到"ICECREAM"。
问题出在哪里?
【问题讨论】:
代码
String c = "IceCream";
String upper = c.toUpperCase();
System.out.println(upper);
正确打印“冰淇淋”。但是,原始字符串 c 没有更改。 Java 中的字符串是immutable,因此对字符串的所有操作都会返回一个新副本。
【讨论】:
您是否期望原始变量 c 已被 toUpperCase() 更改?字符串是不可变的; .toUpperCase() 等方法返回新字符串,保留原字符串不变:
String c = "IceCream";
String d = c.toUpperCase();
System.out.println(c); // prints IceCream
System.out.println(d); // prints ICECREAM
【讨论】:
无法更改对象,因为String 是不可变的。但是,您可以将引用指向一个新实例,该实例全部为大写:
String c = "IceCream";
c = c.toUpperCase();
【讨论】:
你应该这样使用它:
String c = "IceCream";
String upper_c = c.toUpperCase();
【讨论】:
String c = "IceCream".toUpperCase();
这可能是您的语言环境的问题。试试:
String c = "IceCream";
return c.toUpperCase(Locale.ENGLISH);
【讨论】: