2014-09-20 34 views
-5

所以我有一個String類的equals()方法的問題。我正在嘗試查找檢查以確保用戶輸入不僅僅是一個新行字符(「\ n」),但每當我比較只是一個換行符的用戶輸入時,它總是返回false。這裏是代碼:String.equals()方法不匹配「 n」字符

command = kb.nextline(); 
if(!command.equals("\n")) 
{ 
    performProcess(command); 
} 

其中「kb」是掃描儀。有任何想法嗎?

+3

而不是試圖猜測可能是有這不是匹配的,爲什麼不使用調試器或記錄和實際看到有什麼呢? – abarnert 2014-09-20 23:55:49

+1

同時,我並沒有使用Java,而是['Scanner.nextline']的文檔(http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html# nextLine())說:「此方法返回當前行的其餘部分,不包括結尾處的任何行分隔符。」所以......你爲什麼期望它首先匹配'「\ n」'? – abarnert 2014-09-20 23:56:26

回答

-2

您可以使用此代碼

command = kb.nextline(); 
String newline = System.getProperty("line.separator"); 
boolean hasNewline = command.contains(newline); 
if(!hasNewline) 
{ 
    performProcess(command); 
} 
+0

謝謝託尼。這不完全是我需要的,但它讓我產生了一個有效的想法。而不是檢查一個新行,我只是修剪()該命令,然後檢查一個空字符串。 – cteeters 2014-09-21 00:16:48