Я пытаюсь взять строку ввода с помощью сканера. Но он спрашивает меня больше строк, которые ожидали: не следует с этим кодом просить 5 строк?Сканер спрашивает больше строк, которые ожидали
public void go()
{
Scanner sc=new Scanner(System.in);
ArrayList<String> list=new ArrayList<String>();
String temp=new String();
Integer i=new Integer(0);
while(sc.hasNextLine() && i<5)
{
temp=sc.nextLine();
list.add(list.size(),temp);
i++;
}
}
Если я пытаюсь запустить его, он запрашивает у меня 6 строк, прежде чем консоль перестанет принимать входные данные. Но я в начале равен нулю, он увеличивается 5 раз, а затем становится 5. Так почему же он также остается в то время, когда я 5?
Решение: Оба метода решили проблему.
Как это исправить? –
@HovercraftFullOfEels Если i достигает 5, i <5 будет ложным и конец цикла while до вызова sc.hasNextLine(). Уже sc.hasNextLine делает чтение, если вызвано. –
Это решило проблему. –