Java - 将CSV文件拆分为数组

时间:2012-02-02 11:54:40

标签: java arrays csv

我已设法根据逗号分割CSV文件。我这样做是通过放置一个虚拟字符串,其中有一个','然后根据虚拟字符串进行拆分。

但是,CSV文件包含以下内容:

something, something, something
something, something, something

因此,在有新行的情况下,每行的最后一个和第一个值将合并到它们自己的字符串中。我怎么解决这个问题?我已经尝试将我的虚拟字符串放在\n找到的地方,根据它来分割它,但没有成功。

帮助?!

4 个答案:

答案 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(" ");