繁体   English   中英

Java 读取 CSV 的特定部分

[英]Java read specific parts of a CSV

我创建了以下代码来读取 CSV 文件:

public void read(String csvFile) {
   try {
      File file = new File(csvFile);
      FileReader fr = new FileReader(file);
      BufferedReader br = new BufferedReader(fr);
      String line = "";
      String[] tempArr;
      while((line = br.readLine()) != null) {
        tempArr = line.split(ABSTAND);
        anzahl++;
        for(String tempStr : tempArr) {
          System.out.print(tempStr + " ");
        }
        System.out.println();
    }
    br.close();
    } catch(IOException ioe) {
       ioe.printStackTrace();
    }
}

我有一个 CSV 有超过 300'000 行看起来像这样:{9149F314-862B-4DBC-B291-05A083658D69};Gebaeude;TLM_GEBAEUDE;;Schiessstand;{41C949A2-6D-6F7B-461EE-719 Altdorf 300m;offiziell;Hochdeutsch 墨水。 Lokalsprachen;Einfacher 姓名;; 684600 295930 ;400

我现在怎么能只得到一些部分呢? 我只需要使用粗体/斜体部分即可。

在没有进一步指定您的要求/输入限制的情况下,以下应该在您的循环中起作用。

        String str = "{9149F314-862B-4DBC-B291-05A083658D69};Gebaeude;TLM_GEBAEUDE;;Schiessstand;{41C949A2-9F7B-41EE-93FD-631B76F2176D};Altdorf 300m;offiziell;Hochdeutsch inkl. Lokalsprachen;Einfacher Name;;684600;295930;400";
        String[] arr = str.split("[; ]", -1);
        int cnt=0;

//        for (String a : arr)
//            System.out.println(cnt++ + ": " + a);
        System.out.println(arr[6] + ", " + arr[15] + ", " + arr[16]);

请注意,这假定您的分隔符是分号或空格,并且所需的字段位于固定位置(6、15、16)。 结果:

Altdorf, 684600, 295930

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM