1

を使ってCSVファイルを読み込みたいjava.util.Scanner。最初の試みは有望に見えました:

 Scanner scanner = new Scanner(cFile);
 while (scanner.hasNextLine()) {
    String curLine = scanner.nextLine().trim();
    this.processRow(curLine);
 }

 private void processRow(String workString) {
     Scanner lineScanner = new Scanner(workString);
     lineScanner.useDelimiter(",");
     // .next goes through the elements
     lineScanner.next();
 } 

私が直面している課題は linelineScanner.useDelimiter(",");です。私の CSV には、テキスト内にカンマがあり、二重引用符がエスケープされています。

 Year,Value,Customer,NickName,Rank
 2012,45.56,T3456C,"Mike, \"The Gangster\"",1
 2012,1237.35,"A453F", Joe Armagendon,2
 2012,,X344,"Frank the weasel",3

セパレータのみをフィルタリングする正規表現はありますか?

4

1 に答える 1

1

nhahtdh が述べたように、CSV の動作は例よりも少し複雑なので、実際にはパーサーを使用する必要があります。

これには多くのライブラリがあります。私が使用してフォークしたのはcsvfileです。それは非常に使いやすく、適切に機能します。

于 2012-06-27T07:54:21.357 に答える