2011-12-11 12 views

答えて

30

コード

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

が正しく「ICECREAM」を出力します。ただし、元の文字列cは変更されません。 Javaの文字列はimmutableなので、文字列のすべての操作で新しいコピーが返されます。

+0

も参照http://stackoverflow.com/質問/ 22397861/why-is-string-imm-in-java – Raedwald

3

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

代替も '列c =「アイスクリーム」.toUpperCase()であろう。' –

7

Stringは不変であるため、オブジェクトは、変更することはできません。ただし、すべて大文字で新しいインスタンスへの参照点を持つことができます。

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

あなたのロケールに問題がある可能性があります。試してみてください:

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

あなたはtoUpperCase()によって変更されたために、元の変数、cを、期待していますか?文字列は不変です。例えば、元の未変性残し、新たな文字列を返す.toUpperCase()などの方法:

String c = "IceCream"; 
String d = c.toUpperCase(); 
System.out.println(c); // prints IceCream 
System.out.println(d); // prints ICECREAM 
関連する問題