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

Просто измените свой код следующим образом:

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

 Смежные вопросы

  • Нет связанных вопросов^_^