2010-09-25 75 views
0

我試圖用java.util.Scanner實現一個簡單的yes/no輸入。我的代碼如下所示:java.util.Scanner和字符串問題

public boolean ask(String quest){ 
    String answ = scann(quest + " (y/n)"); 
    answ = answ.split("")[1].toLowerCase(); 
    if(answ == "y") { return true; } 
    if(answ == "n") { return false;} 

    //if answer isnt understood 
    printOut("Please enter 'y' or 'n'! Answered: " + answ +"!"); 
    return ask(quest); 
} 

簡而言之:它以無限的答案請求結束。答案永遠不會被理解,我不知道我做錯了什麼。

+1

也許它應該是'answ = answ.split(「」)[0] .toLowerCase();'? – st0le 2010-09-25 13:11:06

+0

不,第一個分割是空的。 – fb55 2010-09-25 13:18:53

回答

3

您不能使用==比較Java中的字符串(當然,您可以,但它不是比較它們的字面值的正確方法)。您需要使用equals()

if ("y".equals(answ)) { return true; } 
    if ("n".equals(answ)) { return false; } 
+1

Jup。如果要避免可能的空指針異常,請使用「y」.equals(answ)。 – InsertNickHere 2010-09-25 13:08:29

+1

@InsertNickHere:很好!編輯。 – BoltClock 2010-09-25 13:09:15

+0

完美。謝謝! – fb55 2010-09-25 13:20:21