所以我有一个包含这些行的文件
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/