使用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方法,或者可能会得到不一致的迭代。     

要回复问题请先登录注册