我有一个字符串:
String c = "IceCream";
如果我使用toUpperCase()
函数,那么它返回相同的字符串,但我想获得"ICECREAM"
。
问题出在哪里?
答案 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);