在Java中,我们经常使用Scanner类来读取用户输入或文件中的数据。Scanner类中有两个常用的方法,它们是hasNext()和next()。
hasNext()方法用于检测是否还有下一个输入项,若有则返回true,否则返回false。下面是一个简单的示例:
import java.util.Scanner;public class HasNextDemo {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个整数:");boolean hasInt = scanner.hasNextInt();if (hasInt) {int num = scanner.nextInt();System.out.println("输入的整数是:" + num);} else {System.out.println("输入的不是整数!");}scanner.close();}}
在上面的代码中,我们使用hasNextInt()方法判断输入的是否为整数,如果是则调用nextInt()方法读取该整数,否则输出提示信息。
接下来是next()方法,该方法用于从输入中读取下一个字符串或单词。下面是一个示例:
import java.util.Scanner;public class NextDemo {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个字符串:");String str = scanner.next();System.out.println("输入的字符串是:" + str);scanner.close();}}
在上面的代码中,我们使用next()方法读取输入的下一个字符串,然后输出该字符串。
需要注意的是,hasNext()和next()方法都是阻塞式的,也就是说它们会一直等待用户输入。因此,在使用这两个方法时应该做好异常处理和输入验证,以防止程序无限等待。