2013-03-01 100 views
1

我從掃描儀讀取輸入,這我則比較硬編碼字符串變量的Java:從scanner.next字符串()和.equals()比較失敗

String MOVE = input.next(); // I type in "MOVE N" 
MOVE = MOVE.trim(); 
System.out.print(MOVE.equals("MOVE N")); 

這返回false。我加了trim()

String MOVE = input.next(); // I type in "MOVE N" 
System.out.print(MOVE.equals("MOVE N")); 

仍然是假的。

任何想法?謝謝

+1

'System.out.println(''「+ MOVE +」'「)''的輸出是什麼? – 2013-03-01 13:31:26

+1

你有沒有調試你的代碼? – ogzd 2013-03-01 13:31:59

回答

11

你可能想要nextLine()next()方法將只返回下一個令牌,默認情況下它將是下一個單詞(即它在空格處斷開)。

下一次,您應該添加一個致電System.out.println(MOVE);來幫助您診斷 - 這樣您可以看到結果只是"MOVE"而不是"MOVE N"。 (然後你會參考Scanner.next()的文檔...)

此外,我強烈建議你開始遵循你的變量的Java命名約定 - 例如move而不是MOVE

+1

+1馬恩,那是超級快.. :) – PermGenError 2013-03-01 13:31:48

+0

掃描儀的問題已成爲一個正規的黨 – user1428716 2013-03-01 13:34:48

+0

謝謝,nextLine()的作品。不要擔心命名約定,我會遵循它們,這是爲了舉例而過於簡化 – njl 2013-03-01 13:36:25

0
String MOVE = input.nextLine(); // I type in "MOVE N" 
MOVE = MOVE.trim(); 
System.out.print (MOVE.equals ("MOVE N"));