Zachowanie String.split w java 1.6?
Mój kod to:
String s = "1;;;; 23;;";
System.out.println(s.split(";").length);
i daje jako wyjście5
. Kod źródłowysplit
jest:
public String[] split(String regex) {
return split(regex, 0);
}
a dokumentacja mówi:
Ta metoda działa tak, jakby wywoływała dwuzakresową metodę split (java.lang.String, int) z podanym wyrażeniem i argumentem limitu równym zero. Końcowe puste ciągi nie są zatem uwzględniane w wynikowej tablicy.
Na przykład ciąg „boo: and: foo” daje następujące wyniki z następującymi wyrażeniami:
Regex Result
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }
Jeśli wydrukuję ciągi, mam:
1
23
Nie powinienem z tego wyjść1;;;; 23;;
coś jak{"1", "", "", "", " 23", ""}
?