问题描述: 在使用Scanner类从控制台进行信息录入的时候,使用类下的next()方法进行录入,发现在使用英文状态下进行输入的时候,录入不会出错,程序能顺利进行。而,如果使用中文进行录入的话,会出现 使用回车 不能结束单次录入的现象。具体看以下图片。
首先先贴一下代码,因为只是调用了这个testPut()方法,因此只贴一下这段代码。
下面是控制台信息
经过自己的测试发现,有以下集中情况:
1、全过程使用英文状态下录入,完全没有问题。
2、如果使用中文进行录入,但是自己手动将光标移动到显示录入的地方,录入也能够正常进行。
3、单纯使用 回车键 (即,不使用方向键进行光标移动处理)对单次录入进行分割,在使用中文进行录入的时候会出现录入出错的情况。出现在输入数字后(ID),回车无法结束本次录入,只用在继续输入汉字后回车才能结束。
下面,分别对第二种和第三种情况进行贴图
热门评论
查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息。即使以前调用 hasNext() 返回了 true,在等待要扫描的输入时此方法也可能阻塞。
建议对于字符串还是用nextLine().输入完了,还是关了扫描器吧。