splitメソッドの仕様

Stringのsplitに悩まされた。

splitメソッドは文字列を指定した文字で分割し、配列にしてくれる。

  String csv = "1,2,3";
  String[] arrayCsv = csv.split(","); // arrayCsv = {1,2,3}となる。

上記のような場合は問題ないが、最後の値がブランクの場合に意図していない結果となってしまう。

  String csv = "1,2,3,"; //末尾ブランク
  String[] arrayCsv = csv.split(","); 
  // arrayCsv = {1,2,3,}となる思っていたが、{1,2,3}となってしまう。

最後の値がブランクなんて、CSVではよくあること。
自分でsplit自作するしかないと思ってら、既に作成されて方がいた。

http://pgmemo.blog116.fc2.com/blog-entry-2.html

参考にさせていただき、解決しました。


[追記]

コメントでご指摘いただきました。
第2引数に-1を指定することで、最後のブランクが破棄されないようです。。
ということでこのエントリは無視してください。。。