继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

使用Scanner进行汉字录入时遇到的问题

苏果
关注TA
已关注
手记 5
粉丝 0
获赞 105

问题描述: 在使用Scanner类从控制台进行信息录入的时候,使用类下的next()方法进行录入,发现在使用英文状态下进行输入的时候,录入不会出错,程序能顺利进行。而,如果使用中文进行录入的话,会出现 使用回车 不能结束单次录入的现象。具体看以下图片。


首先先贴一下代码,因为只是调用了这个testPut()方法,因此只贴一下这段代码。
代码内容


下面是控制台信息
经过自己的测试发现,有以下集中情况:
1、全过程使用英文状态下录入,完全没有问题。
2、如果使用中文进行录入,但是自己手动将光标移动到显示录入的地方,录入也能够正常进行。
3、单纯使用 回车键 (即,不使用方向键进行光标移动处理)对单次录入进行分割,在使用中文进行录入的时候会出现录入出错的情况。出现在输入数字后(ID),回车无法结束本次录入,只用在继续输入汉字后回车才能结束。
下面,分别对第二种和第三种情况进行贴图
第二种情况(1)--

第二种情况(2)--在手动将光标移到输入行的时候,录入汉字是没有什么问题的
第三种情况下的控制台输出

打开App,阅读手记
3人推荐
发表评论
随时随地看视频慕课网APP

热门评论

查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息。即使以前调用 hasNext() 返回了 true,在等待要扫描的输入时此方法也可能阻塞。

建议对于字符串还是用nextLine().输入完了,还是关了扫描器吧。

Scanner in=new Scanner(System.in);
String str=in.nextLine();
in.close();


查看全部评论