sc.hasNext()
时间: 2023-06-22 18:31:07 浏览: 43
`sc.hasNext()`是Java中的Scanner类的一个方法,用于判断输入流中是否还有下一个标记(Token)。它返回一个布尔值,如果输入流中还有下一个标记,则返回`true`,否则返回`false`。
标记是指输入流中的一个单词、一个数字、一个符号等等。例如,如果输入流中包含一个名为`John`的单词,那么该单词就是一个标记。
通常情况下,`Scanner`类的使用流程如下:
1. 创建一个`Scanner`对象,指定输入流;
2. 使用`hasNext()`方法判断输入流中是否还有下一个标记;
3. 如果`hasNext()`返回`true`,则调用`next()`方法获取下一个标记;
4. 处理获取到的标记;
5. 重复步骤2-4,直到输入流中没有下一个标记。
以下是一个示例代码,用于从标准输入中读取用户输入的整数并输出:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数:");
while (sc.hasNext()) {
if (sc.hasNextInt()) {
int num = sc.nextInt();
System.out.println("您输入的整数是:" + num);
break;
} else {
String str = sc.next();
System.out.println("您输入的不是整数,请重新输入:");
}
}
sc.close();
}
}
```
在这个示例中,我们使用`hasNext()`方法判断输入流中是否还有下一个标记,如果有,再使用`hasNextInt()`方法判断下一个标记是否为整数。如果是整数,则使用`nextInt()`方法获取该整数并输出;如果不是整数,则使用`next()`方法获取下一个标记(字符串类型),并提示用户重新输入。如果输入流中没有下一个标记,循环退出。
希望这个例子对您有帮助!