如何在Java中按特定列对csv文件进行排序

如何在Java中按特定列对csv文件进行排序,java,csv,sorting,Java,Csv,Sorting,我需要按第三列对csv文件进行排序,但我被卡住了,无法找到解决方案 代码: 我需要的是: 1001,Name1,9 1007,Name3,14 1005,Name2,20 下面是一个使用具有lambda语法的流的Java8解决方案 String filePath = "Filepath"; String content = Files.lines(Path.of(filePath)) .sorted(Comparator.comparing(line

我需要按第三列对csv文件进行排序,但我被卡住了,无法找到解决方案

代码:

我需要的是:

1001,Name1,9
1007,Name3,14
1005,Name2,20

下面是一个使用具有lambda语法的流的Java8解决方案

String filePath = "Filepath";
String content = Files.lines(Path.of(filePath))
                      .sorted(Comparator.comparing(line -> Integer.parseInt(line.split(",")[2])))
                      .collect(Collectors.joining("\n"));
Files.write(Paths.get("OutputFilepath"), content.getBytes());

下面是一个使用具有lambda语法的流的Java8解决方案

String filePath = "Filepath";
String content = Files.lines(Path.of(filePath))
                      .sorted(Comparator.comparing(line -> Integer.parseInt(line.split(",")[2])))
                      .collect(Collectors.joining("\n"));
Files.write(Paths.get("OutputFilepath"), content.getBytes());

检查确保您的CSV值在某些引号内不包含
!只需确保您的CSV值在某些引号内不包含
String filePath = "Filepath";
String content = Files.lines(Path.of(filePath))
                      .sorted(Comparator.comparing(line -> Integer.parseInt(line.split(",")[2])))
                      .collect(Collectors.joining("\n"));
Files.write(Paths.get("OutputFilepath"), content.getBytes());