Pages - Menu

2016-09-24

String型splitの仕様

今日の開発で引っかかったのが、splitメソッド。
以下の例では、splitの結果である配列strsのlengthは2です。
String str ="ab@cd@ef";
String[] strs = str.split(str);
System.out.println(strs.length); // --> 2
このことから、split結果のlengthはいつでも「(文字列に含まれる区切り文字の数)+1」になると考えていました。
しかし、区切り文字が末尾に来るときは、区切り文字以降の空白文字はカウントされないようです。
以下の例では、strsのlengthは1になります。
String str ="ab@cdef@";
String[] strs = str.split(str);
System.out.println(strs.length); // --> 1
逆に先頭に区切り文字がある場合はカウントされます。
処理の仕組みとしては理解できるが、仕様としていまいち統一感がない気がしますね。

0 件のコメント:

コメントを投稿