charAt の範囲外
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
String s = "abc";
System.out.println(s.charAt(s.length()));
}
}
- A
cと出力される - B 何も出力されない
- C 実行時に例外が発生する
- D コンパイルエラーになる
正解と解説を見る
正解: C
- A: 最後の文字は
charAt(length() - 1)です。charAt(length())は範囲外です。 - B: 範囲外の位置を指定すると例外が発生します。
- C:
charAt(3)は範囲外なので StringIndexOutOfBoundsException が発生します。 - D: 範囲外の位置かどうかは実行時に分かるので、コンパイルはできます。
ポイント
- 最後の文字は
charAt(length() - 1)です。charAt(length())は範囲外でStringIndexOutOfBoundsExceptionです。
「文字列の作成と操作 (テキスト・ブロックを含む)」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)