1. ホーム
  2. ジャワ

java.utilのjavaSE Error。

2022-02-27 21:10:06

java.lang.StringIndexOutOfBoundsExceptionでのjavaSEエラー

エラーの説明

スレッド "main" java.util.InputMismatchException で例外が発生しました。
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at niukewang.Main2.init(Main2.java:66)
    at niukewang.Main2.main(Main2.java:30)

エラーの解決

エラーの原因は、スキャナが変数と異なるタイプの文字を読み込んだことにあります。

例えば

        int a = 0;

        a = in.nextDouble();

を実行すると、エラーが表示されます。しかし、このエラーの原因が表示呼び出しによるものではなく、以下のように入力を適切に使用しなかったことによる一連の入力エラーであることが多いので、注意が必要です。

nextLine()は改行まで読み込むのに対し、コンソールで入力するとキャリッジリターンで読み込んでしまい、欲しい文字列が読み込めないことに注意しましょう。

文字列の正しい読み方

  スキャナ in = 新しいスキャナ(Syetem.in);

 String row = in.next();//文字列を読み込む

row = in.nextLine();// 改行が読み込まれ、一連のエラーが発生します。