String は不変
出力はどれか。
public class Main {
public static void main(String[] args) {
String s = "java";
s.toUpperCase();
s.concat(" silver");
System.out.println(s);
}
}
- A
java - B
JAVA - C
java silver - D
JAVA silver
正解と解説を見る
正解: A
- A: String は不変です。toUpperCase と concat は新しい文字列を返すだけで、戻り値を使っていないので s は変わりません。
- B: toUpperCase の戻り値を s に代入していないので、s は "java" のままです。
- C: concat も新しい文字列を返すだけで、s 自体は変わりません。
- D: どちらの戻り値も使っていないので、s は元のままです。
ポイント
- String は不変です。
toUpperCase()やconcat()は新しい文字列を 返すだけ で、s は変わりません。 - 変えたいときは
s = s.toUpperCase();のように代入します。
「文字列の作成と操作 (テキスト・ブロックを含む)」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)