2016-11-16 3 views
0

整数をスキャンして、その整数まで文字列をスキャンするループを実行しようとしています。しかし、このコードは最初の文字列をスキップします...一部の文字列をスキャンするために整数とforループをスキャンする

import java.util.ArrayList; 
import java.util.Scanner; 

public class A1 { 

    public static void main(String[] args) { 
     ArrayList <String> A = new ArrayList<String>(); 
     Scanner sc = new Scanner(System.in); 
     System.out.println("How many strings to add:"); 
     int a = sc.nextInt(); 
     for(int i=0; i<a; i++) 
     { 
      System.out.printf("Enter %dth string:\n", i+1); 
      String s = sc.nextLine(); 
      A.add(s); 
     } 

     for(int i=0; i<A.size(); i++) 
     { 
      System.out.println(A.get(i)); 
     } 
    } 

} 

すべての解決方法はありますか?

+2

これは役立つかもしれない:[スキャナが(次の使用した後nextLine()を飛ばしている)、nextInt()、または他のnextFoo()メソッド](http://stackoverflow.com/q/13102045/669576)を参照してください。 –

+0

ありがとうございます。:) – p32929

答えて

0

だけで、次のようにコードを変更:SOポストを通じて

import java.util.ArrayList; 
import java.util.Scanner; 

public class A1 { 

    public static void main(String[] args) { 
     ArrayList <String> A = new ArrayList<String>(); 
     Scanner sc = new Scanner(System.in); 
     System.out.println("How many strings to add:"); 
     int a = sc.nextInt(); 
     for(int i=0; i<a; i++) 
     { 
      System.out.printf("Enter %dth string:\n", i+1); 
      String s = sc.next();   //This will wait until you give argument 
      A.add(s); 
     } 

     for(int i=0; i<A.size(); i++) 
     { 
      System.out.println(A.get(i)); 
     } 
    } 

} 

ゴー - Java Scanner doesn't wait for user input

関連する問題