Java:读取CSV文件以获取各种统计数据的最小值、最大值、平均值

标签 java csv

我想编写一个 Java 类,它将获取 CSV 文件并获取各种统计数据的最小值、最大值、平均值等。请参阅下面的该文件的示例。例如,我想获取“打开登录页面”、“作为主要用户登录”等的统计信息。

我首先将 TestName 和 Time 读入 Map:

static Map<String, String> data = new TreeMap<String, String>();
...
for (String line : file) {
if (line.contains("Test Name")){
//Get next line, this is the first one.
continue;
}
String TestName = (line.substring(0,line.indexOf(","))).trim();
String Time = (line.substring(line.lastIndexOf(",")+2, line.length())).trim();
//System.out.println(TestName + " " + Time);
data.put(TestName, Time);
}

这很好用。但是,我不确定获取所有唯一值并运行计算的最佳方法。我不需要使用 map ,这就是我脑海中突然出现的东西。有谁知道如何做这样的事情吗?

CSV 文件示例:

Test Name, Thread No, Run No, Time(s)
Opening login page, 0, 0, 1.8869998455047607
Opening login page, 1, 0, 2.246999979019165
Opening login page, 2, 0, 2.1710000038146973
Logging in as regular user, 1, 0, 22.009999990463257
Logging in as regular user, 1, 0, 22.009999990463257
Logging in as regular user, 1, 0, 22.009999990463257
Logging in as lead user, 0, 0, 23.616000175476074
Opening login page, 13, 0, 2.125999927520752
Opening login page, 15, 0, 1.8939998149871826
Logging in as lead user, 3, 0, 20.244999885559082
Logging in as lead user, 2, 0, 23.039999961853027 

最佳答案

您可以通过使用一些 CSV JDBC 驱动程序(如 this one)在 CSV 文件之上使用 SQL。或this one 。一旦加载了这样的驱动程序,您就可以使用 ANSI SQL 执行所需的任何类型的查询。

关于Java:读取CSV文件以获取各种统计数据的最小值、最大值、平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187322/

相关文章:

java - 如何在 Android 中发布 SOAP 服务请求?

python:在文本文件中搜索列表中的值

java - Spring bean 实现两个接口(interface)

javascript - D3 CSV 列空间解析

python - 在Python 3和Python 2中处理CSV中的非UTF8字符

Javascript 性能优化

java - 如何将字符串拆分为数组,其中分隔符也是一个标记?

java - Tomcat 未启动 JRE 未正确定义

java - 是否可以在 Java 中同时实现 ListIterator 和 Collection?

java - Graphics2d 方法不产生输出