2016-11-16 1 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

이 도움이 될 수 있습니다 : [스캐너) (다음, nextInt() 또는 다른 사용 후 꽵()을 건너 뛰는 nextFoo() 메서드] (http://stackoverflow.com/q/13102045/669576)를 참조하십시오. –

+0

정말 고마워요. :) – p32929

답변

0

그냥 다음에 코드를 변경 :

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)); 
     } 
    } 

} 

이동을 SO 게시물을 통해 - Java Scanner doesn't wait for user input