Java中的toUpperCase不起作用

我有一个字符串:

String c = "IceCream"; 

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

哪里有问题?

代码

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

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

您是否期望原始变量ctoUpperCase()更改? 字符串是不可改变的; 诸如.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"; return c.toUpperCase(Locale.ENGLISH);