我已设法根据逗号分割CSV文件。我这样做是通过放置一个虚拟字符串,其中有一个','然后根据虚拟字符串进行拆分。
但是,CSV文件包含以下内容:
something, something, something
something, something, something
因此,在有新行的情况下,每行的最后一个和第一个值将合并到它们自己的字符串中。我怎么解决这个问题?我已经尝试将我的虚拟字符串放在\n
找到的地方,根据它来分割它,但没有成功。
帮助?!
答案 0 :(得分:5)
我强烈建议你不要重新发明轮子:)。使用已有的库之一来处理CSV文件,例如:OpenCSV
答案 1 :(得分:4)
我不明白为什么你需要一个虚拟字符串。为什么不用逗号分隔?
BufferedReader in = new BufferedReader(new FileReader("file.csv"));
String line;
while ((line = in.readLine()) != null) {
String[] fields = line.split(",");
}
答案 2 :(得分:1)
根据您提到的虚拟字符串,可以在现有库的帮助下轻松处理。我想推荐一个开源库uniVocity-parsers,它可以提供简单的API,具有出色的性能和灵活性。
只需参考几行代码即可将csv数据读入内存中,并使用数组:
private static void parseCSV() throws FileNotFoundException {
CsvParser parser = new CsvParser(new CsvParserSettings());
List<String[]> parsedData = parser.parseAll(new FileReader("/examples/example.csv"));
for (String[] row : parsedData) {
StringBuilder strBuilder = new StringBuilder();
for (String col : row) {
strBuilder.append(col).append("\t");
}
System.out.println(strBuilder);
}
}
答案 3 :(得分:-1)
使用以下它将分割线
String[] a=scanner.next().split(" ");