如何解决使用HashMaps的ArrayList在Java中实现字符串相等性?我正在使用.equals
| 我正在尝试从HashMap列表中删除项目,并且在查看控制台输出时,很明显,正在比较的字符串是相等的,并且我正在使用.equals(String x)方法进行比较,但是此输出始终显示为false,并且没有任何内容从列表中删除。有人可以给我提示我在这里做错了什么吗?public void removeWord(String wd) {
Log.println(Log.INFO,\"Initial Size\",\"Initial size\" + String.valueOf(allWords.size()));
for (int x = 0; x < allWords.size(); x++) {
Log.println(Log.INFO,\"Current Word\",allWords.get(x).get(\"Long\") + \" \" + wd);
Log.println(Log.INFO,\"Equality?\",String.valueOf(allWords.get(x).get(\"Long\").toUpperCase().equals(wd)));
if (allWords.get(x).get(\"Long\").toUpperCase().equals(wd)) {
allWords.remove(x);
Log.println(Log.INFO,\"Removed something\",\"Removed Something!!!!\");
clearAdapter();
}
}
Log.println(Log.INFO,\"Size of list\",\"Size of list\" + String.valueOf(allWords.size()));
}
解决方法
您正在将映射到
\"Long\"
的String的大写值与wd
的原始值进行比较。除非以大写形式传递wd
,否则您可能会关闭。尝试使用equalsIgnoreCase
,并通过调用trim
来确保两个字符串都没有开头或结尾空格。希望对您有所帮助!
,解决问题时,可能是由于字符串中的多余的不可见字符或值引起的-还尝试比较日志中的长度-您应使用迭代器遍历所有单词和迭代器的remove方法,或者可能会得到不一致的迭代。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。