Java中的toUpperCase不起作用
我有一个字符串:
String c = "IceCream";
如果我使用toUpperCase()
函数然后它返回相同的字符串,但我想得到"ICECREAM"
。
哪里有问题?
代码
String c = "IceCream"; String upper = c.toUpperCase(); System.out.println(upper);
正确打印“ICECREAM”。 但是,原始字符串c不会更改。 Java中的字符串是不可变的,因此字符串上的所有操作都返回一个新副本。
您是否期望原始变量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"; return c.toUpperCase(Locale.ENGLISH);