java.util.Scanner的问题&;串
我试图用java.util.Scanner实现一个简单的是/否输入。我的代码如下所示:java.util.Scanner的问题&;串,java,terminal,java.util.scanner,Java,Terminal,Java.util.scanner,我试图用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
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);
}
简而言之:它以无限的答案请求而告终。答案永远不会被理解,我不知道我做错了什么。你不能用
=
来比较Java中的字符串(当然,你可以,但这不是比较它们的文本值的正确方法)。您需要使用equals()
:
您不能使用
==
来比较Java中的字符串(当然,您可以,但这不是比较它们的文本值的正确方法)。您需要使用equals()
:
朱普。如果要避免可能出现的空指针异常,请使用“y”.equals(answ).Jup。如果要避免可能出现的空指针异常,请使用“y”.equals(answ)。可能应该是
answ=answ.split(“”[0]。toLowerCase()代码>?不,第一个拆分为空。可能应该是answ=answ.split(“”[0]。toLowerCase()代码>?不,第一个拆分为空。
if ("y".equals(answ)) { return true; }
if ("n".equals(answ)) { return false; }