Java 从csv文件读取数据,并分别打印唯一、重复和无效数据

Java 从csv文件读取数据,并分别打印唯一、重复和无效数据,java,csv,Java,Csv,我有一个csv文件,其中我必须读取csv文件并分别打印唯一、重复和无效元素。 这是密码 import java.io.BufferedReader; import java.io.FileReader; import java.util.HashSet; public class InputData { public static void main(String[] args) throws Exception { BufferedReader br = new

我有一个csv文件,其中我必须读取csv文件并分别打印唯一、重复和无效元素。 这是密码

import java.io.BufferedReader;
import java.io.FileReader;

import java.util.HashSet;

public class InputData {

    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\e.csv"));
        String line = null;
        HashSet<String> lines = new HashSet<>();
        HashSet<String> lines1 = new HashSet<>();

        System.out.println("Unique List:-  ");
        while ((line = br.readLine()) != null) 
        {
            {   
            try {
                if (lines.add(line)) {
                    String[] part = line.split(",");
                    Integer.parseInt(part[0]);
                    System.out.println(line);
                } else {
                    lines1.add(line);
                }
            } catch (NumberFormatException ne) {
                System.out.println(" Invalid data:- " + ne); 
            }

            }
        }
        br.close();
        System.out.println("Duplicates:- " +lines1);
    }
}
我得到的输出是:-

Unique List:-  
101,Ron,4545,XYZ,3
102,Harry,2345,ABC,3
103,Sam,5448,DEF,3
104,John,9989,GHI,3
105,Gang,123,HNB,3
 Invalid data:- java.lang.NumberFormatException: For input string: "jftdgchj;vcvuigkuj;uygf"
 Invalid data:- java.lang.NumberFormatException: For input string: "hvykfjtucd;gfd;gfd"
Duplicates:- [101,Ron,4545,XYZ,3, 104,John,9989,GHI,3]

但我想把副本分开一行。。。请帮助

您正在使用默认的.toString方法作为哈希集,就像Stephen p在上面的评论中指出的那样

更改此项:

System.out.println("Duplicates:- " +lines1);
类似于这样的内容,它使用迭代来遍历集合:

for (String s : lines1) {
    System.out.println("Duplicates:- " + s);
}
lines1是一个哈希集,您只需使用默认的toString行为打印它。而是在集合元素上循环打印每个元素。
for (String s : lines1) {
    System.out.println("Duplicates:- " + s);
}