解决eclipse控制台不能正常输入问题的心路历程

解决eclipse控制台不能正常输入问题的心路历程

问题现象:
今天想把在个人电脑上可正常运行的Java代码在公司的电脑上继续写其他功能,新建了类之后直接将代码复制过去,检查没有任何错误后运行程序,但程序却在最初的Scanner控制台输入数据时就没办法正常输入,即输入数字控制台不显示,程序也没办法继续运行…

代码块:

			Scanner input = new Scanner(System.in);
			System.out.println("请选择电影序号:");
			int choose = input.nextInt();
			Movie currentMovie = movies.get(choose - 1);
			System.out.println("你选择了:" + movies.get(choose - 1).getName());

现象展示:
解决eclipse控制台不能正常输入问题的心路历程_第1张图片
可以看到程序是在运行中的,但是鼠标的位置没有任何显示,有时候连续输入之后会突然显示出来,但是程序依然不能继续运行…
(可能聪明的你已经发现问题所在了,原谅这时候我还没看出来TT)

心路历程:

表示很懵,明明在自己电脑上运行没有任何问题…

肉眼检查了下代码没发现任何问题,尝试使用DEBUG调试,无果…

然后在暴力操作了一波之后发现程序莫名奇妙自己好了,没有改动任何地方,这个时候我觉得 emmm可能是神秘的东方力量吧…

不死心的我,很想探究一下这神秘的力量。。于是我把eclipse客户端关闭,又重新打开,嗯,果然程序又不行了…

在网上搜索了一通后,发现有一个说法比较靠谱:
“ 这是Eclipse软件中的输入bug,
就是当你在拼音输入法的情况下,输入的鼠标光标没有在要输入的位置上,
输入汉字时,就会出现刚才的情况,导致没法再次输入,
只要在输入的时候,将光标放在您要输入的位置,然后在输入就好了,
这个bug 只会在输入汉字时才会出现 ”


于是我检查了自己的环境发现:
1、虽然我不是要输入汉字,但确实我的控制台默认输入法是中文的;
2、我的上一行输出语句使用的是println,那么该行输出后,下一行才应该是控制台要输入的位置,但是我实际却直接将鼠标放到了该行的文字后面。

为了验证这个想法,我进行了如下测试:
1、运行程序前将输入法调为英文,再运行程序。
结果:程序可以正常运行,无论我是否手动移动光标所在位置,都可以正常输入。
光标默认在此处时直接输入:
解决eclipse控制台不能正常输入问题的心路历程_第2张图片
输入正常:
解决eclipse控制台不能正常输入问题的心路历程_第3张图片
手动将光标移动到错误位置
解决eclipse控制台不能正常输入问题的心路历程_第4张图片
输入正常:
解决eclipse控制台不能正常输入问题的心路历程_第5张图片
2、输入法为中文的情况下,将鼠标移动到正确位置。
解决eclipse控制台不能正常输入问题的心路历程_第6张图片
输入正常,程序正常运行:
解决eclipse控制台不能正常输入问题的心路历程_第7张图片
3、输入法为中文的情况下,修改上一条语句输出为print函数。

			System.out.print("请选择电影序号:");

将光标移动到上一行文字后输入,程序正常运行:
解决eclipse控制台不能正常输入问题的心路历程_第8张图片
以上,验证了上面的说法,3种方法也都可以解决我的问题。

我的总结:
1、在不需要输入中文的情况下,控制台最好默认为英文输入法。
2、注意print和println函数的不同之处。

很有趣。

你可能感兴趣的:(Java学习记录)