いつもお世話になっています。
以前、paizaなどのオンラインコンパイラでは、事前に値を入力しておかないと、コンパイルできないことを教えていただきましたが、入力を先にしておいても、for文内のScannerの場合、機能しないようです。eclipseでは問題なく作動します。
実行しようとしている処理は、数字を入力したあと、その数字の回数分だけ配列に文字を入れていき、”_”を間に入れて出力すると言うものです。
例えば、下記のようになります。
<入力>
4
a
b
c
d
<出力>
a_b_c_d
エラー内容としては
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937) at java.base/java.util.Scanner.next(Scanner.java:1478) at Main.main(Main.java:11)
11行目のfor文内のscannerの使い方に問題があると考えています。
next()をnextLine()にすることも試しましたが、うまくいきませんでした。
解決策をご存知でしたら、ご教授ください。
Java
1public static void main(String[] args) { 2 // TODO 自動生成されたメソッド・スタブ 3 Scanner sc = new Scanner(System.in); 4 int n = sc.nextInt(); 5 String[] foo = new String[n]; 6 for(int i=0; i<n; i++) { 7 Scanner scString = new Scanner(System.in); 8 foo[i] = scString.next(); 9 } 10 for(int i=0; i<n-1; i++) { 11 System.out.print(foo[i]); 12 System.out.print("_"); 13 } 14 15 System.out.println(foo[n-1]); 16 17 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/16 09:24
2018/12/16 10:38