java - 我有两个具有相同内容但具有不同哈希码的字符串,因此 .equals 方法返回 false。请建议如何解决这个问题

标签 java

  for (String header : headers) {
            for (int i = 0; i < dataList.get(0).size(); i++) {
                String s = dataList.get(0).get(i);
                String h = header;
                int h1 = s.hashCode();
                int h2 = h.hashCode();
                int n = s.compareTo(h);
                if (s.equals(h)) {
                    for (int k = 1; k < dataList.size(); k++) {
                        values.add(dataList.get(k).get(i));
                    }

这里 for 循环中的“headers”是 => String[] headers,包含 6 个 String 对象。

我还尝试过使用 intern 方法并将这些值存储在新的 String 对象中。每次 equals 方法都返回 false。 如果有人有任何想法请分享,这对我有很大帮助!!

enter image description here Link of Screenhot for code while debugging

最佳答案

字符串h具有正确的哈希码。
dataList 读取的字符串 s 不应生成该哈希码。
所以检查一下是否有任何不一致的地方。
打印每个字符的 ascii 代码。
它应该给出:78 97 109 101

关于java - 我有两个具有相同内容但具有不同哈希码的字符串,因此 .equals 方法返回 false。请建议如何解决这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53685588/

相关文章:

java - 在没有上下文路径的情况下访问 Java 应用程序

java - Soap 请求超时不起作用

java - 协调使用 BufferedReader 和 DataInputStream

java - CDI @Inject Instance @Any - 但实例从未填充实例

java - 以编程方式将多个 jpeg 图像嵌入到 EXCEL 中?

Java (android) 重用对象

Java Sockets - 将数据从服务器发送到客户端

java - 杀死对象创建的线程

java - 在 Android 应用程序中解码二维码?

java - 从 HashMap 内的列表中删除项目