Boş bir dizeyi String.split () ile bölmek, boş bir dize içeren tek bir öğe dizisi döndürür . Çoğu durumda, org.apache.commons.lang3.StringUtils.split (str) ile tam olarak elde ettiğiniz gibi, boş bir dizi veya null geçtiyseniz boş bir dizi almayı tercih edersiniz .
import org.apache.commons.lang3.StringUtils;
StringUtils.split(null) => null
StringUtils.split("") => []
StringUtils.split("abc def") => ["abc", "def"]
StringUtils.split("abc def") => ["abc", "def"]
StringUtils.split(" abc ") => ["abc"]
Diğer bir seçenek ise, bir yineleyici ve buna uygun bir liste döndüren google guava Splitter.split () ve Splitter.splitToList () ' dir. Apache sürümünün aksine Splitter, aşağıdakilere bir NPE atar null
:
import com.google.common.base.Splitter;
Splitter SPLITTER = Splitter.on(',').trimResults().omitEmptyStrings();
SPLITTER.split("a,b, c , , ,, ") => [a, b, c]
SPLITTER.split("") => []
SPLITTER.split(" ") => []
SPLITTER.split(null) => NullPointerException
Yineleyici yerine bir liste istiyorsanız, Splitter.splitToList () kullanın .
String[] ary = new String[] { "name" };
hangi ameliyata ihtiyacın var demek istemiyorsun? örneğin karakterleri bölmek?