我在控制台中运行一个简单的程序,它接受输入,根据这些创建对象并将这些对象保存到列表中。但是,如果输入“x”,则该功能停止。
public static void input(List<Things> slist) {
String strA = new java.util.Scanner(System.in).nextLine();
if(!xcheck(strA) {return;}
Things s = new Things(strA);
slist.add(s);
}
public static boolean xcheck(String xStr){
if(xStr == "x"){
return false;
} else {
return true;
}
}
问题是函数xcheck永远不会返回false。它确实认识到输入字符串包含“x”(xStr.contains("x")
),但它似乎并不认为输入只是“x”,即使将字符串输入控制台时,它肯定只输出“x”没有任何其他内容,字符串的长度为1。
答案 0 :(得分:1)
将字符串与equals not ==进行比较。
尝试:
public static boolean xcheck(String xStr){
if("x".equals(xStr)){
return false;
} else {
return true;
}
}
答案 1 :(得分:1)
使用xStr.equals("x")
代替xStr == "x"
。