3

次のような CSV データがあります。

1,mm/dd/yy,"abc,def,"pqr",xyz"

これを3つの文字列に解析したいと思います。

  1. 1

  2. 月/日/年

  3. 残りのすべてのデータ、この場合は "abc,def,"pqr",xyz"

私はopenCSV、javacsvなどのいくつかのライブラリを試しました。それらはすべて、最後の列も解析およびトークン化しているようです。私が欲しいのは、2列目の後のデータを単一のトークンとして残すことです。

何か案は ?

4

4 に答える 4

0
int firstCommaIndex = s.indexOf(',');
int secondCommaIndex = s.indexOf(',', firstCommaIndex + 1);
String firstPart = s.substring(0, firstCommaIndex);
String secondPart = s.substring(firstCommaIndex + 1, secondCommaIndex);
String lastPart = s.substring(secondCommaIndex + 1);
于 2012-12-15T14:11:03.080 に答える
0

https://github.com/CyborTronic/fluent-ssvでカスタム LineParser を使用できます

また、CSV データを Bean に変換することもできますが、日付型の場合は ValueConverter のカスタム実装を提供する必要があります。それ以外の場合は、文字列として保存してから操作できます。

したがって、コードは次のようになります。

new SsvStreamBuilder<MyBean>()
  .forEntity(MyBean.class)
  .withLineParser(new MyLineParser())
  .withValueConverter(new MyDateConverter())
  .stream("~/some/csv/file");
于 2015-06-10T15:57:00.657 に答える
0

SuperCSVを試してください。引用されたテキストの処理を表現しているように見えるquoteChar構成オプションがあります。

于 2012-12-15T14:34:02.467 に答える