Использование scanner.hasNext () - PullRequest
0 голосов
/ 24 марта 2020

Я перепробовал множество веб-сайтов, и ни один из них не дал мне правильного использования функции hasNext () в JAVA. Я узнал, что он сканирует, пока нет больше входов? Что это значит больше не вводить? Пользователь уже будет знать, сколько входных данных он предоставит. И когда функция останавливается? Пожалуйста, помогите мне понять эту функцию. Спасибо.

Ответы [ 2 ]

2 голосов
/ 24 марта 2020

если вы видите код ниже от Scanner.class, вы узнаете свой ответ.

/**
 * Returns true if this scanner has another token in its input.
 * This method may block while waiting for input to scan.
 * The scanner does not advance past any input.
 *
 * @return true if and only if this scanner has another token
 * @throws IllegalStateException if this scanner is closed
 * @see java.util.Iterator
 */
public boolean hasNext() {
    ensureOpen();
    saveState();
    while (!sourceClosed) {
        if (hasTokenInBuffer())
            return revertState(true);
        readInput();
    }
    boolean result = hasTokenInBuffer();
    return revertState(result);
}

Если вы видите вышеупомянутый код метода sureOpen (), убедитесь, что сканер открыт или закрыт, отправьте сообщение состояние подтверждено, что означает, что до тех пор, пока ваш курсор не получит ввод, он будет проверять информационную форму конструктора сканера с параметром.

Здесь При определении приведенный ниже код.

Scanner out = new Scanner(System.in);

Здесь, создание нового ресурса сканера принимает вход системы в качестве потока. Ниже конструктор с параметром выполняет задачу.

 /**
 * Constructs a new <code>Scanner</code> that produces values scanned
 * from the specified input stream. Bytes from the stream are converted
 * into characters using the underlying platform's
 * {@linkplain java.nio.charset.Charset#defaultCharset() default charset}.
 *
 * @param  source An input stream to be scanned
 */
public Scanner(InputStream source) {
    this(new InputStreamReader(source), WHITESPACE_PATTERN); // Below is the description
}

Здесь, в коде комментария, отмеченном выше, вызов переходит к классу java .io.InputStream, который гарантирует, что чтение берется из консоли до Пользователь вводит данные.

Надеюсь, это поможет вам.

0 голосов
/ 25 марта 2020

Итак, вот s coop: hasNext () сканирует до тех пор, пока не останется ввода пользователя. Это просто означает, что программа продолжает работать, если еще есть входные данные для сканирования. Останавливает сканирование, когда все пользовательские данные были отсканированы. Функция останавливается, когда входной блок пуст. Например, скажем, вы вводите 5 входов. Система продолжает работать, пока все 5 входов не будут отсканированы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...