java - 使用Java查找行中的重复值

标签 java find duplicates row

所以我有一个包含这些行的文件

155, 490, 297, 490,
-45, 19, 45, 19,
-24, 80,-12,-69, 80,
12,-92, 28,-40,

我尝试读取文件并找到这些包含重复元素的行。但是我的逻辑有问题,我找不到错误。有什么帮助吗?

代码如下:

public static void main(String[] args) throws IOException {
        Scanner fileInput = null;
        try {
            fileInput = new Scanner( new File("array_list.csv"));
            String line;
            while (fileInput.hasNextLine()) {
                line = fileInput.nextLine(); 
                String[] lineArr = line.split(",");
                // check for missing values
                boolean contains = true;
                for(int i=0; i<lineArr.length; i++) {
                    for(int j=0; j<lineArr.length; j++) {
                        if(lineArr[i]==lineArr[j]) {
                            contains = false;
                            break;
                        }
                    }
                    if(!contains) {
                        // print the row .....
                    }
                    else {
                        contains = true;
                        // print some thing ...
                    }
                }
            }
            } finally {
            if (null != fileInput) {
                fileInput.close();
            }
        }
    }

最佳答案

由于您要比较字符串,因此需要使用 equals() 方法:

lineArr[i].equals(lineArr[j])

话虽这么说,但我还可以看到其他一些可能会给您带来问题的事情:

  • 注意逗号后的空格。示例数据不一致,因此最好调用 lineArr[i].trim() 去除前导/尾随空格。
  • 您应该首先将 contains 设置为 false 并尝试找到一个匹配项,然后将其设置为 true 并中断。然后 if (contains),打印该行。
  • 你的循环设置方式,你将自己检查每个元素。因此,您当然会发现每一行都有重复项!

关于java - 使用Java查找行中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19511404/

相关文章:

java - 如何在 java me 中有效地连接两个 vector 的数据?

linux - 如何在 linux 上识别重命名的文件?

python - 将重复行添加到 DataFrame

mysql - 在 MySQL 上查找多个值的重复行

java - 为什么这个 for 循环不打印任何内容?

java - 当用户得到正确答案时递增变量

java - Java中 "return methodA() || methodB()"的用途是什么

javascript - 深度嵌套搜索

linux - 查找在日期范围之间创建的文件

unix - 如何从文件中删除重复的行