現在、Scannerで読み込む際に、エラーがでる場合と出ない場合があり、
その違いが判らず困っております。
「原因はおそらく2回目のScannerで読み込みができていないと思います。
ブレイクポイントでも、その箇所でエラーがでるので間違いないとおもいます」
大変申し訳ございませんが、エラーがでる原因と出ないようにするためには、
どのように書き直したらよいかご教示いただけますと幸いです。
エラー
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at study.Study.main(Study.java:38)
記載コード
import java.util.ArrayList; import java.util.HashMap; import java.util.Scanner; public class Study { static Scanner sc = new Scanner(System.in); static ArrayList<String> strList = new ArrayList<String>(); static ArrayList<String> strList2 = new ArrayList<String>(); static ArrayList<Integer> intList = new ArrayList<Integer>(); static HashMap<String,Integer> Hmap = new HashMap<String,Integer>(); public static void main(String[] args) { //データ挿入 int a = sc.nextInt(); for(int i=0;i<a;i++) { String str = sc.nextLine(); strList.add(str); System.out.println(i); } for(String disp : strList) { System.out.println(disp); } //データ処理 int b = sc.nextInt(); System.out.println(b); for(int i=1;i<=b;i++) { strList2.add(sc.nextLine()); System.out.println(i); } for(String disp : strList2) { System.out.println(disp); } コード
エラーの原因は2回目のScannerで読み込みエラーが起きていると思います。
int b = sc.nextInt();
入力例1
エラーが出ない
2
ando noda
2
noda 1000
ando 500
入力例2
エラーがでる
3
A B C
4
A 1000
B 1000
B 2000
C 2000
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/18 16:19