如果我没有被卡住,我不会在这里发帖。我试图比较两个字符串与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个相等的字符串时,程序都看不到它。有什么提示吗?
答案 0 :(得分:1)
每个第二个字符串末尾有两个额外的空格;这可以通过将le.getName().equals(o)
更改为le.getName().equals(o.trim())
来解决。 trim()
中的String
方法删除了给定字符串开头或结尾的任何多余空格。