gpt4 book ai didi

java - 如何在 Java 中从 CSV 文件获取最大值和最小值

转载 作者:行者123 更新时间:2023-12-01 19:41:47 24 4
gpt4 key购买 nike

这是我的 CSV 文件:marks.csv,其中包含左侧的学号和右侧的分数:

B00123,55
B00783,35
B00898,67

我需要能够搜索该文件并找到最大标记和最小标记。我有这段返回值的代码,但我不知道之后要做什么:

public static void MaxAndMin()
{
// .csv files are comma separated
String fileName = "src\\data\\marks.csv";
File file = new File(fileName);

try
{
Scanner inputStream = new Scanner(file);

while(inputStream.hasNext())
{
String data = inputStream.next();
String [] values = data.split(",");
int mark = Integer.parseInt(values[1]);
System.out.println(mark);
}

inputStream.close();

}
catch (FileNotFoundException ex)
{
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

这将返回以下内容:

 55
35
67

接下来我可以尝试什么?

最佳答案

对此问题的更短、更清晰、更简洁的答案可能如下:

private static void minAndMax() {
try (Stream<String> stream = Files.lines(Paths.get(FILE_PATH))) {
IntSummaryStatistics statistics = stream
.map(s -> s.split(",")[1])
.mapToInt(Integer::valueOf)
.summaryStatistics();
System.out.println("Lowest:: " + statistics.getMin());
System.out.println("Highest:: " + statistics.getMax());
} catch (IOException e) {
e.printStackTrace();
}
}

只需读取文件的行,打开 Stream<String> ,映射并将其拆分为逗号,映射到 Integer并创建一个 IntSummaryStatistics对象从其中出来。然后只需使用 getMingetMax值(value)观。干净简单。另请注意,此答案使用 try-with-resources 来自动管理可能需要手动处理的各种操作。

关于java - 如何在 Java 中从 CSV 文件获取最大值和最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55144549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com