解決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());

現象展示:
在這裏插入圖片描述
可以看到程序是在運行中的,但是鼠標的位置沒有任何顯示,有時候連續輸入之後會突然顯示出來,但是程序依然不能繼續運行…
(可能聰明的你已經發現問題所在了,原諒這時候我還沒看出來TT)

心路歷程:

表示很懵,明明在自己電腦上運行沒有任何問題…

肉眼檢查了下代碼沒發現任何問題,嘗試使用DEBUG調試,無果…

然後在暴力操作了一波之後發現程序莫名奇妙自己好了,沒有改動任何地方,這個時候我覺得 emmm可能是神祕的東方力量吧…

不死心的我,很想探究一下這神祕的力量。。於是我把eclipse客戶端關閉,又重新打開,嗯,果然程序又不行了…

在網上搜索了一通後,發現有一個說法比較靠譜:
“ 這是Eclipse軟件中的輸入bug,
就是當你在拼音輸入法的情況下,輸入的鼠標光標沒有在要輸入的位置上,
輸入漢字時,就會出現剛纔的情況,導致沒法再次輸入,
只要在輸入的時候,將光標放在您要輸入的位置,然後在輸入就好了,
這個bug 只會在輸入漢字時纔會出現 ”


於是我檢查了自己的環境發現:
1、雖然我不是要輸入漢字,但確實我的控制檯默認輸入法是中文的;
2、我的上一行輸出語句使用的是println,那麼該行輸出後,下一行才應該是控制檯要輸入的位置,但是我實際卻直接將鼠標放到了該行的文字後面。

爲了驗證這個想法,我進行了如下測試:
1、運行程序前將輸入法調爲英文,再運行程序。
結果:程序可以正常運行,無論我是否手動移動光標所在位置,都可以正常輸入。
光標默認在此處時直接輸入:
在這裏插入圖片描述
輸入正常:
在這裏插入圖片描述
手動將光標移動到錯誤位置
在這裏插入圖片描述
輸入正常:
在這裏插入圖片描述
2、輸入法爲中文的情況下,將鼠標移動到正確位置。
在這裏插入圖片描述
輸入正常,程序正常運行:
在這裏插入圖片描述
3、輸入法爲中文的情況下,修改上一條語句輸出爲print函數。

			System.out.print("請選擇電影序號:");

將光標移動到上一行文字後輸入,程序正常運行:
在這裏插入圖片描述
以上,驗證了上面的說法,3種方法也都可以解決我的問題。

我的總結:
1、在不需要輸入中文的情況下,控制檯最好默認爲英文輸入法。
2、注意print和println函數的不同之處。

很有趣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章