Java中的toUpperCase不起作用

时间:2011-12-11 14:45:03

标签: java string

我有一个字符串:

String c = "IceCream";

如果我使用toUpperCase()函数,那么它返回相同的字符串,但我想获得"ICECREAM"

问题出在哪里?

5 个答案:

答案 0 :(得分:32)

代码

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

正确打印“ICECREAM”。但是,原始字符串c不会更改。 Java中的字符串是immutable,因此字符串上的所有操作都返回一个新副本。

答案 1 :(得分:12)

您是否希望c更改原始变量toUpperCase()?字符串是不可改变的;诸如.toUpperCase()之类的方法返回新字符串,而原始未经修改的字符串:

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

答案 2 :(得分:9)

无法更改对象,因为String是不可变的。但是,您可以将引用指向新实例,该实例全部为大写:

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

答案 3 :(得分:3)

你应该像这样使用它:

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

答案 4 :(得分:0)

这可能是您的语言环境的问题。尝试:

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