diff options
author | 2023-06-15 14:59:33 +0200 | |
---|---|---|
committer | 2023-06-15 14:59:33 +0200 | |
commit | 8594fa2d567ecbdc88460b53b7935c48a468035b (patch) | |
tree | 8e8a9012e4c5f29401faeda50934fc4fb1fec499 | |
parent | 7e06a2aa6352fa2e5340c92d1a97d6d24aad01f2 (diff) | |
download | csv-utils-8594fa2d567ecbdc88460b53b7935c48a468035b.tar.gz csv-utils-8594fa2d567ecbdc88460b53b7935c48a468035b.zip |
Add method to change the CSVParser separator
-rw-r--r-- | src/main/java/it/alessandroiezzi/csv/CSVParser.java | 14 |
1 files 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<Map<String, String>> parse() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(csvFile)); List<Map<String, String>> 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<String, String> data = new HashMap<>(); if (values.length != header.length) { @@ -51,6 +57,4 @@ public class CSVParser { return records; } - - private final String COMMA_DELIMITER = ";"; } |