summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/it/alessandroiezzi/csv/CSVParser.java14
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 = ";";
}