String はイミュータブル(不変)
Java の String は イミュータブル(Immutable:不変) なオブジェクトです。
これは、一度作成された文字列の内容は変更できないことを意味します。
String name = "太郎";
name = "花子";
一見すると "太郎" が "花子" に変更されたように見えますが、実際には "花子" という新しい文字列オブジェクトが作成され、変数 name の参照先が切り替わっています。
name
↓
"太郎"
↓
name
↓
"花子"
そのため、元の "太郎" という文字列は変更されていません。
ポイント
-
Stringの内容は変更できない - 文字列を変更する操作は新しい文字列を生成する
- 変数には新しい文字列を再代入する必要がある
String text = "hello";
text = text.toUpperCase(); //再代入
System.out.println(text); // HELLO
文字列メソッドは元の文字列を変更するのではなく、新しい文字列を返す点に注意しましょう。