日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java中hasnext的作用_java中Scanner的hasNext()的疑问

發布時間:2023/12/4 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中hasnext的作用_java中Scanner的hasNext()的疑问 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一個問題,兩段代碼的區別在于阻塞的位置不同,加上一行輸出代碼就可以很明顯地看到差別。

Test.java

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner s = new Scanner(System.in);

while(s.hasNext())

{

System.out.print("You inputted: ");

System.out.println(s.next());

}

}

}

另,hasNext()方法會阻塞,不代表next()方法就不會阻塞。

/**

* 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);

}

/**

* Finds and returns the next complete token from this scanner.

* A complete token is preceded and followed by input that matches

* the delimiter pattern. This method may block while waiting for input

* to scan, even if a previous invocation of {@link #hasNext} returned

* true.

*

* @return the next token

* @throws NoSuchElementException if no more tokens are available

* @throws IllegalStateException if this scanner is closed

* @see java.util.Iterator

*/

public String next() {

ensureOpen();

clearCache

while (true) {

String token = getCompleteTokenInBuffer(null);

if (token != null) {

matchValid = true;

skipped = false;

return token;

}

if (needInput)

readInput();

else

throwFor();

}

}

第二個問題,想要結束循環,在Windows環境下,需要輸入Ctrl+Z;而在Unix環境下,需要輸入Ctrl+D。注意,這是輸入,而不是對控制臺進行操作。這相當于向控制臺輸入一個字符,這個字符代表EOF,此時hasNext()方法返回false,循環結束。

總結

以上是生活随笔為你收集整理的java中hasnext的作用_java中Scanner的hasNext()的疑问的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。