То, что я понял из моего прошлого опыта, - nextInt()
или nextDouble()
, будет продолжать поиск до тех пор, пока целое или двойное не будет найдено в той же или следующей строке, что это не имеет значения, тогда как для чтения строки в качестве входного через класс сканера next()
рассматривает эти строки перед пробелом и удерживает курсор в той же строке, где nextLine()
будет рассматривать остатки на next()
, если он используется до кода nextLine()
, может кто-то поможет мне разобраться в этом более подробно, особенно около nextLine()
, где он начинается и где курсор заканчивается? Кроме того, скажите, пожалуйста, какие ошибки я считаю правильными.Ввод с использованием класса сканера
ответ
Ваше первое понимание неверно.
, что я понял из моего прошлого опыта является .nextInt() или .nextDouble() будет продолжать поиск не до целого числа или двойной находится в том же или следующая строка не имеет значения
nextInt()
и nextDouble()
ждет целое и двойное соответственно. Если он получает строку вместо ожидаемого, он выдает InputMismatchException
.
Вы можете запустить этот код и сам убедиться.
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
s.nextInt();
}
}
По вашей цитате:
.nextInt() или .nextDouble() будет продолжать поиск не до целого числа или двойника находится в том же или следующей строке Безразлично» t matter
Дайте ввод: Abcdf234gd
. Вы не получите 234
. Вы получаете InputMismatchException
.
Для .next()
и .nextLine()
,
.next()
: Только читает и возвращает строку, пока она не встречает пробел или EOF
.
.nextLine()
: Возвращает строку до встречи \n
или \r
или EOF
. Значит, он возвращает целую строку.
положения курсора
next()
:
Рассмотрим строку:
ABC DEF GHI JKL MNO PQR STU VWX YZ
Исходное положение:
->ABC DEF GHI JKL MNO PQR STU VWX YZ
При вызове next()
, курсор перемещается:
ABC ->DEF GHI JKL MNO PQR STU VWX YZ
и возвращает ABC
nextLine()
:
Рассмотрим строку:
ABC DEF GHI JKL
MNO PQR STU VWX
YZ
Начальная позиция:
->ABC DEF GHI JKL
MNO PQR STU VWX
YZ
При вызове nextLine()
, курсор переместится на следующую строку:
ABC DEF GHI JKL
->MNO PQR STU VWX
YZ
и возвращает ABC DEF GHI JKL
.
Надеюсь, это поможет.
Спасибо, я не знаю об исключениях! – Rohitha
- 1. Не удается получить ввод с использованием класса сканера
- 2. Проблемы с использованием класса сканера
- 3. Ошибка строки String с использованием класса сканера?
- 4. ввода с использованием класса сканера в Java
- 5. Проблемы ввода класса сканера
- 6. Ввод сканера ввода следующего ввода
- 7. Подскажите, как вводить ввод с помощью сканера
- 8. Справка класса сканера Java
- 9. Что касается класса сканера
- 10. Строка, которая не печатается при вводе с использованием класса сканера
- 11. с использованием класса сканера для средних чисел в java
- 12. Запись внутри текстового файла с использованием класса сканера
- 13. сосредоточиться на пользовательском вводе с использованием класса сканера в java
- 14. Проверка класса сканера
- 15. Методы класса сканера
- 16. внедрение сканера с использованием phonegap
- 17. Многомерный массив с использованием сканера
- 18. Создание потока с использованием сканера
- 19. Ввод массива сканера Java до конца строки
- 20. Java: Назначить ввод сканера нескольким переменным?
- 21. Подтвердить ввод сканера в числовой диапазон
- 22. Незначительный символ класса сканера Java «®»
- 23. Импорт класса сканера по методу
- 24. Верхний ввод строки из сканера в java
- 25. Не удается выполнить ввод для сканера
- 26. Как вернуть действительный ввод со сканера?
- 27. Как имитировать пользовательский ввод для сканера?
- 28. Как добавить весь ввод сканера в строку?
- 29. Класс сканера не принимает ввод строки
- 30. Разбор текстовых файлов и примеров шаблонов подсчета с использованием нескольких стеков с использованием класса сканера
https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html –