Java:Equals()无法正确比较

时间:2014-07-15 19:38:47

标签: java string compare equals

如果我没有被卡住,我不会在这里发帖。我试图比较两个字符串与equals(),遗憾的是它永远不会通过if函数。 这是代码:

 public ListElement searchElement(String o) {
        ListElement le = first;
        while (le != null) {
            System.out.println("NAME : " + le.getName() + " : " + o + " " + le.getName().equals(o));
            if (le.getName().equals(o))
            {                               
                return le;
            }
            le = le.next;
        }
        return null;
    }

这是输出:

NAME : aa : aa   false
NAME : cc : aa   false
NAME : bb : aa   false
NAME : aa : bb   false
NAME : cc : bb   false
NAME : bb : bb   false
NAME : aa : cc   false
NAME : cc : cc   false
NAME : bb : cc   false
NAME : aa : aa   false
NAME : cc : aa   false
NAME : bb : aa   false
NAME : aa : bb   false
NAME : cc : bb   false
NAME : bb : bb   false
NAME : aa : cc   false
NAME : cc : cc   false

每次我比较2个相等的字符串时,程序都看不到它。有什么提示吗?

1 个答案:

答案 0 :(得分:1)

每个第二个字符串末尾有两个额外的空格;这可以通过将le.getName().equals(o)更改为le.getName().equals(o.trim())来解决。 trim()中的String方法删除了给定字符串开头或结尾的任何多余空格。