Java String Scanner下一行输入字符串与预期不符

时间:2014-03-16 17:36:09

标签: java java.util.scanner

我在控制台中运行一个简单的程序,它接受输入,根据这些创建对象并将这些对象保存到列表中。但是,如果输入“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。

2 个答案:

答案 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"