StringUtils#splitメソッドの注意

org.apache.commons.lang3.StringUtils クラスの split メソッドは、 String クラスの split メソッドとは若干挙動が異なるため注意。

StringUtils#split メソッドによって文字列を分割した場合、分割後のトークンが空文字となる場合は返却される配列に含まれない。

StringUtils.split( "a.b.c" , '.' ) // = ["a", "b", "c"] StringUtils.split( "a..b.c" , '.' ) // = ["a", "b", "c"] StringUtils.split( "a:b:c" , '.' ) // = ["a:b:c"] StringUtils.split( "a b c" , ' ' ) // = ["a", "b", "c"]

分割後のトークンが空文字の場合でも返却される配列に含めるためには、 StringUtils#splitPreserveAllTokens メソッドを使用すれば良い。

StringUtils.splitPreserveAllTokens( "abc def" , null ) // = ["abc", "def"] StringUtils.splitPreserveAllTokens( "abc def" , " " ) // = ["abc", "def"] StringUtils.splitPreserveAllTokens( "abc def" , " " ) // = ["abc", "", def"] StringUtils.splitPreserveAllTokens( "ab:cd:ef" , ":" ) // = ["ab", "cd", "ef"]