CSV parser,将CSV中的每一行,解析为 firstname, lastname, email, interests, notes 和 city, age 这几个字段,然后利用 firstname, interests, city, age字段里的值进行造句。
核心就是csv parser
代码如下
public static List<String>parseCSV(String s) {
List<String> result = new ArrayList<>();
if (s == null || s.length() == 0) {
return result;
}
boolean inQuote = false;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
if (inQuote) {
if (s.charAt(i) == '"') {
if (i == s.length() - 1) {
result.add(sb.toString());
return result;
} else if (s.charAt(i + 1) =='"') {
sb.append('"');
i++;
} else {
result.add(sb.toString());
sb.setLength(0);
inQuote = false;
i++;
}
} else {
sb.append(s.charAt(i));
}
} else {
if (s.charAt(i) == '"') {
inQuote = true;
} else if (s.charAt(i) == ',') {
result.add(sb.toString());
sb.setLength(0);
} else {
sb.append(s.charAt(i));
}
}
}
if (sb.length() > 0) {
result.add(sb.toString());
}
return result;
}