#java #exception #java.util.scanner
#java #исключение #java.util.scanner
Вопрос:
Я новичок в Java. Я хотел знать, как nextLine()
метод отбрасывает ваш текущий ввод? Например, предположим, что следующий код:
Scanner input = new Scanner(System.in);
int a = input.nextInt();
input.nextLine();
После input.nextLine()
выполнения значение в «input» отбрасывается. Я хотел знать, как это работает?
Комментарии:
1. вы отбрасываете его, когда игнорируете результат, возвращаемый
nextLine()
Ответ №1:
когда вы вводите число и нажимаетеEnter, оно считывает целочисленное значение a
и сохраняет n
его в буфере
Теперь, когда вы вызываете nextLine()
его напрямую, он получает символ новой строки из буфера, пропуская ввод пользователя
чтобы избежать этого next()
, вызов метода put для чтения остатков n
из буфера перед вызовом newLine()
и после успешного выполнения nextInt()
Комментарии:
1. Спасибо, дорогой Джоши, но, к сожалению, я не смог понять, что ты имеешь в виду… Можете ли вы дать мне название книги для дальнейшего чтения или хорошего ресурса …?
Ответ №2:
ввод — это объект, представляющий сканер. Когда выполняется следующая строка, функция считывает данные до тех пор, пока не встретится символ новой строки, помещает эти данные в буфер и возвращает буфер. Важно отметить, что «ввод» не хранит никаких данных. Он хранит представление файла и позицию в том файле, из которого вы читаете. Поэтому ничего во входных данных не отбрасывается. Скорее вы просто не используете значение, возвращаемое nextLine, но побочный эффект функции nextLine все равно увеличивает местоположение объекта ввода в файле.