如果使用next()、nextDouble() 、 nextFloat()、nextInt() 读取后,其实还有一个回车未读取出来,若此时后面跟上一个nextLine()读取的是该回车。碰到nextLine()若Scanner中确实没有东西可以读取,会等待你输入。
{/tabs-pane}
{tabs-pane label="hasNext()"}
hasNextInt()用于判断键盘输入的下一个字符串是否为Int类型,返回boolean,如果输入的是Int类型返回true,否则返回false,一般用户处理输入不匹配的异常
hasNextInt()有点像缓存的机制,当调用hasNextInt()时,那么它的空间中会存入一个值,再次调用不会覆盖或增加,而是保持原来的值。当调用next()或nextInt()会将空间的值给next或nextInt,同时清空它空间中的值,从而可以再次接收新的值。
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个整数");
//连续调用两次hasNextInt()
boolean flag1 = scan.hasNextInt();
//用String类型变量str接收
String str = scan.next();
System.out.println("请输入一个整数");
boolean flag2 = scan.hasNextInt();
{/tabs-pane}
本文共 398 个字数,平均阅读时长 ≈ 1分钟
评论