为了账号安全,请及时绑定邮箱和手机立即绑定

在 Java 中解析 CSV 文件

在 Java 中解析 CSV 文件

PIPIONE 2022-11-02 15:31:17
我是一名Java初学者。我有一个格式为(城市;性别;年龄)的 CSV 文件。例如,我如何计算某个城市有多少年龄 < 40 岁的男性。有什么建议么?public void method() throws IOException {     int count = 0;     FileReader fr = new FileReader(file);     BufferedReader br = new BufferedReader(fr);     String line;     while((line = br.readLine())!= null){         br.readLine();         String [] l = line.split(";");          if(l[0].equals("CityA")&&l[1].equals("M")&&l[2].equals("<40")) {              count++;          }          }}
查看完整描述

2 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

可以使用 streamAPI 完成:

long count = Files.lines(Paths.get(PATH_TO_CSV))
            .map(s -> s.split(";"))
            .filter(arr -> arr[0].equals("CityA"))
            .filter(arr -> arr[1].equals("M"))
            .filter(arr -> Integer.parseInt(arr[2]) < 40)
            .count();
            System.out.println(count);



查看完整回答
反对 回复 2022-11-02
?
白衣非少年

TA贡献1155条经验 获得超0个赞

您正在尝试"string".equals("<40")检查 string"string"是否等于 string "<40",而不是该值是否小于 40。


尝试将字符串 at 转换l[2]为整数,然后进行检查:


int age = Integer.parseInt(l[2]);

if (l[0].equals("CityA") && l[1].equals("M") && age < 40) {

    count++;

}


查看完整回答
反对 回复 2022-11-02
  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信