NoSuchElementExceptionの解決法

前提

Eclipseで問題なし、paizaで実行時エラーとなります。
文字列を数字に分割する処理を含むコードで、nextIntメソッドを使っています。

実現したいこと

  • Javaの実行時エラー解決法を教えてください!

発生している問題・エラーメッセージ

Exception in thread "main" java.util.NoSuchElementException at java.base/java.util.Scanner.throwFor(Scanner.java:941) at java.base/java.util.Scanner.next(Scanner.java:1598) at java.base/java.util.Scanner.nextInt(Scanner.java:2263) at java.base/java.util.Scanner.nextInt(Scanner.java:2217) at Main.main(Main.java:17)

該当のソースコード

<処理の概要>
以下N,C,r[i],c[i]は整数とします。
入力値"N C"を一つの文字列で受け取ります。#間は半角スペース
#ループ(最大N回)
入力値”r[i] c[i]”を受け取ります。
Cはc[i]ずつ減っていき、0以下になったらループを抜けます。
#ループ終わり
r[i]に1〜10が全て現れていたら、”Yes”
そうでなければ現れた数字の数を表示します。

Java

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc1 = new Scanner(System.in); //入力例"12 9000" int N = sc1.nextInt(); //12 int C = sc1.nextInt(); //9000 int[] r=new int[N]; int[] c=new int[N]; int[] array={1,2,3,4,5,6,7,8,9,10}; for(int i=0;i<N;i++){ Scanner sc2 = new Scanner(System.in); //入力例”1 1000”,"15 300",... r[i] = sc2.nextInt(); //1,15,... c[i] = sc2.nextInt(); //1000,300,...    //arrayのうち、現れた数字を0で上書き for(int j=0;j<array.length;j++){  if(r[i]==array[j]){ array[j]=0; break; } } C-=c[i]; if(C<=0){ break; } } //0の数をカウント、すべて0なら"Yes" int cnt=0; for(int i=0;i<array.length;i++){  if(array[i]==0){ cnt++; } } if(cnt==array.length){ System.out.println("Yes"); }else{ System.out.println(cnt); } }}

試したこと

Eclipseに貼り付けて、同じテストケースを入力したところ、エラーは起きず、正しい動作をしました。。。

補足情報(FW/ツールのバージョンなど)

paiza.io

コメントを投稿

0 コメント