比较两个String返回总是假的java

时间:2015-08-25 12:59:33

标签: java string

我有两个变量,当我做

system.out.println(var1+"  && "+var2)

我发现了这个:“var1”&& VAR2

带引号的var1和带引号的var2所以这就是为什么我发现总是假的 我该怎么办?

3 个答案:

答案 0 :(得分:1)

system.out.println(var1+"  && "+var2)

不会编译,更不用说返回或导致值。

&安培;&安培;不能用于比较,它用于实现逻辑AND。

如果要比较对象,则需要使用'=='运算符进行参照比较,或者如果要比较值,则需要使用equals方法。

对于String实例,您可以使用另外的equalsIgnoreCase方法。

所以:如果var1和var2是对象,你可以试试这个:

System.out.println((var1 == var2)); // compare references

System.out.println(var1.equals(var2)); // compare values

如果它们是原语,则需要使用'=='运算符

如果他们是您想要检查的布尔值:

System.out.println(var1&&var2);

会做的伎俩

答案 1 :(得分:0)

首先,您应该检查您在这些变量中获得的值是否正确以及所需的值。

如果它们是正确的,那么,要删除引号,您可以使用String#replace方法将所有双引号替换为空:

var1.replace("\"", "");

请注意,您应该在此处转义双引号\"

注意:此答案假设您正在比较字符串(使用String#equals)。

答案 2 :(得分:0)

    String intint = "INT";
    String gouc = "GOUc";
    String fg2a = "FG2c";
    String fg2c = "FG2c";
    String goua = "GOUa";
    affichageBroadInfos(broadInfos);

    Iterator<RncBroadInfo> iter = broadInfos.iterator();
    while (iter.hasNext()) {
        RncBroadInfo str = iter.next();
    //    if (!(str.getBroadClass().equals("INT"))) { this return false

        if (!(str.getBroadClass().replace("\"", "").equals(intint))) {

            System.out.println("ToComprare Twoe Strings " + str.getBroadClass().replace("\"", "") + " && " + intint);
            System.out.println("To Remove Interface" + str.toString());
            System.out.println("type var 1" + str.getBroadClass().getClass());
            System.out.println("type var 2" + intint.getClass());
            System.out.println("result of Comparision " + str.getBroadClass().equals(intint));

            iter.remove();
        }
    }