渡されたデータによっては期待する配列を返してくれないというお話。
split.java
String str = ",,,";
String[] arrays = str.split(",")
# arrays => []
# arrays.length => 0
このように、例えば、「,,,」というデータを受け取ると長さ0の配列を返す。
これをカンマで区切られた空文字もデータとして扱いたい場合は次のように書く。
String#split(String regex, int limit) とlimit引数のあるAPIを利用する。
split.java
String str = ",,,";
String[] arrays = str.split(",", -1)
# arrays => ["", "", "", "", ""]
# arrays.length => 4
これはlimitに負の値を渡すことで配列の長さが制限されないようになるため、空文字もデータと見なして配列を返してくれるようになる。