Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-将CSV文件拆分为数组_Java_Arrays_Csv - Fatal编程技术网

Java-将CSV文件拆分为数组

Java-将CSV文件拆分为数组,java,arrays,csv,Java,Arrays,Csv,我已经成功地根据逗号分割了一个CSV文件。为此,我将一个伪字符串放在有“,”的地方,然后基于该伪字符串进行拆分 但是,CSV文件包含以下内容: something, something, something something, something, something 因此,如果有新行,则每行的最后一个和第一个值将合并到它们自己的字符串中。我怎样才能解决这个问题?我已尝试将我的伪字符串放置在发现\n的位置,以基于此拆分它,但没有成功 救命啊 我不明白你为什么需要假字符串。为什么不用逗号分开呢

我已经成功地根据逗号分割了一个CSV文件。为此,我将一个伪字符串放在有“,”的地方,然后基于该伪字符串进行拆分

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

something, something, something
something, something, something
因此,如果有新行,则每行的最后一个和第一个值将合并到它们自己的字符串中。我怎样才能解决这个问题?我已尝试将我的伪字符串放置在发现
\n
的位置,以基于此拆分它,但没有成功


救命啊

我不明白你为什么需要假字符串。为什么不用逗号分开呢

BufferedReader in = new BufferedReader(new FileReader("file.csv"));
String line;
while ((line = in.readLine()) != null) {
    String[] fields = line.split(",");
}

我强烈建议您不要重新发明轮子:)。使用一个已经可用的库来处理CSV文件,例如:

使用以下命令,因为它将分割行

               String[] a=scanner.next().split(" ");

根据您提到的伪字符串,它可以在现有库的帮助下轻松处理。我想推荐开源库,它简化了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);
    }
}
private static void parseCSV()引发FileNotFoundException{
CsvParser parser=new-CsvParser(new-CsvParserSettings());
List parsedData=parser.parseAll(新文件读取器(“/examples/example.csv”);
for(字符串[]行:parsedData){
StringBuilder strBuilder=新StringBuilder();
for(字符串列:行){
strBuilder.append(col.append(“\t”);
}
System.out.println(strBuilder);
}
}

为什么不直接使用逗号拆分?无论如何,发布一个帖子来获得更好的帮助。这并不能帮助我根据行进行拆分。这就是问题所在。你应该阅读每一行,并将每一行分开。这样就不会有行合并的问题了。