怎么解决Java while(scanner.hasNext())无法跳出问题
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,本篇内容主要讲解"怎么解决Java while(scanner.hasNext())无法跳出问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决Ja
千家信息网最后更新 2025年01月31日怎么解决Java while(scanner.hasNext())无法跳出问题
本篇内容主要讲解"怎么解决Java while(scanner.hasNext())无法跳出问题",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么解决Java while(scanner.hasNext())无法跳出问题"吧!
Java while(scanner.hasNext())无法跳出
情况说明:
该问题是在做PAT乙级1010时遇到的,我需要在键盘读入有限个数,然后两两进行计算。我一开始想的是声明一个数组,将所有读入的数字进行保存,再分别计算,但是我发现他并不会跳出我设的循环,而是一直在执行
当读入最后一个数据的时候,并不是跳出,而是阻塞在了while中,一直执行
原因:
hasNext(),是如果此扫描器的输入中有另一个标记,则返回 true。在等待要扫描的输入时,此方法可能阻塞。扫描器将不执行任何输入。所以循环会一直下去。
解决方案:
此时,可以设置一个终止符,调用hasNext()的重载方法hasNext(String patten):如果下一个输入与从终止符相匹配,则返回 true。扫描器不执行任何输入。
//例:以"0"作为终止符Scanner in = new Scanner(System.in);while (!in.hasNext("0")) {System.out.println(in.next());}
但是这种操作并不能满足我对于题目解答的要求。我运行了网上java写的答案,发现也是一样的问题,只不过可以在while中进行计算。在卡死前将所有结果输出。
还有一种解决办法就是将输入一字符串的形式读入,然后进行拆解并转成int型数据进行计算。
java 的while+hasNext()
/** @方法1:遇到特殊符号结束 */ public static void main(String args[]){ // System.in代表标准输入,就是键盘输入 Scanner sc = new Scanner(System.in); // 增加下面一行将只把回车作为分隔符 // sc.useDelimiter("\n");//useDelimiter 可以将分隔符号修改为"回车",或者其他字符。 System.out.println("Please input a number"); // 判断是否还有下一个输入项 while(!sc.hasNext("0"))//遇到0结束 ///此情况可以设置一个终止符,调用hasNext()的重载方法hasNext(String patten): // 如果下一个标记与从指定字符串构造的模式匹配,则返回 true。扫描器不执行任何输入。 { // 输出输入项 System.out.println("键盘输入的内容是:" + sc.next()); System.out.println("Please input a number"); } System.out.println("不执行了"); }
/** @方法2以输入"quit",结束输出 */ public static void main(String[] args){ System.out.print("请输入值:"); Scanner s = new Scanner(System.in); while(s.hasNext()){ String a = s.next(); //将s.next()赋值给变量a if("quit".equals(a)){ break; }else{ System.out.println(a); } } }
到此,相信大家对"怎么解决Java while(scanner.hasNext())无法跳出问题"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
输入
问题
方法
扫描器
内容
字符
键盘
输出
字符串
就是
数据
标记
符号
而是
学习
循环
阻塞
实用
更深
特殊
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库中的real啥意思
网络安全拥有强烈的使命感
如何连接服务器ip
藏头诗软件开发
软件开发技术学习心得
计算机网络技术高级公司
大数据和网络技术关系
网络安全学习心得简短
网络技术一些名词
foxpro数据库扩展名
计算机数据库考试的框框里写什么
鸿峥网络技术有限公司官网
数据库导入 impdp
网络技术的宣传标语
服务器机房搬迁方案
中国信通网络安全图
数据库能否为空
无讼案例数据库
海南金财网络技术有限公司官网
哈曼ota网络安全盾
成都联想软件开发方向
单位装专用的河南软件开发
app服务器配置要求
数据库横着那排是记录
数据库的等值连接
洛阳博发软件开发公司
网络安全暂行条例
选择好的软件开发公司
租用服务器一年多少钱
对构建网络安全的看法