将String与equals进行比较

时间:2012-06-04 23:23:24

标签: java string

String site_inclusion = "0;100";

for (String inc: site_inclusion.split(";")) {
   if(!inc.equals(String.valueOf(record.getAttrs().get(new PdsxAttrKey("SiteId")).getValue()))) {
      continue;         
   }
}

record.getAttrs().get(new PdsxAttrKey("SiteId")).getValue()返回77

所以从我的代码来看,它应该continue阻止对吗?但它不会继续下去?

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我建议您简化代码以测试正在发生的事情。您可能在尝试构建示例时犯了一个错误。

String site_inclusion = "0;100";

for (String inc: site_inclusion.split(";")) {
    String temp = String.valueOf(record.getAttrs().get(new PdsxAttrKey("SiteId")).getValue());
    if(!inc.equals(temp)) {
        System.out.println(inc + " != " + temp);
        continue;
    }
    System.out.println(inc + " == " + temp);
}

答案 1 :(得分:0)

最好检查一下变量是什么(System.out.println / debugging)。 之所以不这样,你认为这是if陈述中的条件。

尝试将代码拆分为更小的部分。

String site_inclusion = "0;100";
            for(String inc : site_inclusion.split(";")) {
                int value = record.getAttrs().get(new PdsxAttrKey("SiteId")).getValue();
                System.out.println("Inc = " + inc + " and value = " + value);
                if(!inc.equals(String.valueOf(value))) {
                    System.out.println("continue");
                    continue;
                }
                System.out.println(inc + " equals " + value);
            }