在 Java 中解析 CSV 文件

我是一名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++;

          }    

      }

}


PIPIONE
浏览 128回答 2
2回答

一只斗牛犬

可以使用 streamAPI 完成:long&nbsp;count&nbsp;=&nbsp;Files.lines(Paths.get(PATH_TO_CSV)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.map(s&nbsp;->&nbsp;s.split(";")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.filter(arr&nbsp;->&nbsp;arr[0].equals("CityA")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.filter(arr&nbsp;->&nbsp;arr[1].equals("M")) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.filter(arr&nbsp;->&nbsp;Integer.parseInt(arr[2])&nbsp;<&nbsp;40) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.count(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(count);

白衣非少年

您正在尝试"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) {&nbsp; &nbsp; count++;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java