2015-05-01 2 views
0

Я попытался получить входные данные через сканер, и в прошлом я использовал enter, чтобы перейти к следующему набору входов. Для примера.Java: Нечетное поведение сканера

Input 1 <enter> 
Input 2 <enter> 

Однако на этот раз он принимает только ту же строку, принимая пробелы в качестве разделителя.

Scanner in = new Scanner(System.in); 
int a,b,n,t; 
String input_line; 
String inputs[]= new String[3]; 

t = in.nextInt(); 

in.reset(); //Tried resetting Scanner to see if this works 
input_line = in.nextLine(); 
inputs = input_line.split(" "); 

for(String s:inputs) 
System.out.println(s); 

Например, я ожидаю взять переменную t в первой строке, а затем перейти на вторую линию для input_line сканирования. Но если я нажму Enter после ввода t, программа закончится.

Что мне здесь не хватает?
(Сложился другой вопрос, но, позвольте мне объяснить, сканер не пропускает никаких входов).

+1

'nextInt()' не потребляет вся линия прочитать некоторые Документах – silentprogrammer

+0

@singhakash Я попробовал один и тот же код, некоторое время назад со всем nextInt() в качестве входных данных, он перешел к другой строке, и я смог дать входные данные. –

+0

См. Мой ответ на аналогичный вопрос здесь: http://stackoverflow.com/questions/29008778/java-scanner-execute-only-the-int-and-skip-the-strings-data-types-when-i-inp/29010021 # 29010021 –

ответ

0

Без тестирования я думаю, что вам нужно будет что-то вроде этого

Scanner in = new Scanner(System.in); 
    int a,b,n,t; 
    String input_line; 
    String[] input_numbers = new String[3]; 

    t = in.nextInt(); 
    in.nextLine(); 
    input_line = in.nextLine(); 

    while(!input_line.equals("")){ 
      input_numbers = input_line.split(" "); 
      // do what you want with numbers here for instance parse to make each string variable into int or create new scanner to do so 
      input_line = in.nextLine(); 
    } 
} 
+0

Закрытие его, как решили. @ola спасибо. но idk, что случилось, разобрался. –

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