From 8594fa2d567ecbdc88460b53b7935c48a468035b Mon Sep 17 00:00:00 2001 From: Alessandro Iezzi Date: Thu, 15 Jun 2023 14:59:33 +0200 Subject: Add method to change the CSVParser separator --- src/main/java/it/alessandroiezzi/csv/CSVParser.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/it/alessandroiezzi/csv/CSVParser.java b/src/main/java/it/alessandroiezzi/csv/CSVParser.java index 93645a8..fbc33e7 100644 --- a/src/main/java/it/alessandroiezzi/csv/CSVParser.java +++ b/src/main/java/it/alessandroiezzi/csv/CSVParser.java @@ -13,11 +13,17 @@ import java.util.Map; public class CSVParser { private final InputStream csvFile; + private String separator = ";"; public CSVParser(InputStream csvFile) { this.csvFile = csvFile; } + public CSVParser withSeparator(char separator) { + this.separator = "" + separator; + return this; + } + public List> parse() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(csvFile)); List> records = new ArrayList<>(); @@ -26,8 +32,8 @@ public class CSVParser { // Legge l'intestazione if ((line = br.readLine()) != null) { - line = line.endsWith(COMMA_DELIMITER) ? line.substring(0, line.length() - 1) : line; - header = line.replace("\"", "").split(COMMA_DELIMITER); + line = line.endsWith(separator) ? line.substring(0, line.length() - 1) : line; + header = line.replace("\"", "").split(separator); } if (header == null || header.length == 0) @@ -37,7 +43,7 @@ public class CSVParser { while ((line = br.readLine()) != null) { if (line.trim().isEmpty()) continue; /* Skip emtpy lines */ - String[] values = line.replace("\"", "").split(COMMA_DELIMITER, -1); + String[] values = line.replace("\"", "").split(separator, -1); Map data = new HashMap<>(); if (values.length != header.length) { @@ -51,6 +57,4 @@ public class CSVParser { return records; } - - private final String COMMA_DELIMITER = ";"; } -- cgit v1.2.3