Я считаю, что все часто используют метод разделения строки, но вы столкнулись с следующими ситуациями:
Все думают о том, что такое следующий результат выполнения кода
Public static void main (String [] args) {// Todo Auto-Generatd Method String String str1 = "a, b, c, a"; , b, c ,,, ""; "" "", "); Длина str3: "+"+ s3.length);}
Результаты исполнения:
Почему этот результат появляется?
Решение:
Просмотрев API, мы обнаружили, что наш обычно используемый метод разделения передается 0 по умолчанию.
Public static void main (String [] args) {// Todo Auto-Generatd Method String String str1 = "a, b, c, a"; , b, c ,,, ""; Split (",", -1); "Длина str3:"+s3.length);}
После поиска API, я обнаружил, что в классе строки есть два метода Split Heavy Load Load
1. Public String [] Split (String Regex)
Эти строки разделены в соответствии с данным регулярным выражением.
Роль этого метода похожа на использование данного выражения и ограниченного параметра 0 для вызова двух параметрового метода разделения. Следовательно, массив не включает в себя конец -Пепти строку.
Например, строка «boo: и: foo» может генерировать следующие результаты:
Результаты корпорации
: {"Boo", "и", "foo"} o {"b", "", ": и: f"}
Параметр:
Regex -fixed Law Регулярное выражение возврата:
Струнный массив, который выброшен в соответствии с соответствием регулярного выражения выражения, чтобы разделить эту строку:
PatternSyntaxException -Если грамматика в регулярном выражении недействительна
2. Public String [] Split (String Regex, Int Limit)
Эти строки разделены в соответствии с регулярным выражением, данным при сопоставлении.
Массив, возвращаемый этим методом, содержит суб -строение этой строки. Суб -стрижка в массиве расположена в том порядке, который они появляются в этой строке. Если выражение не соответствует какой -либо части ввода, у массива доходов есть только один элемент, то есть эта строка.
Приложения режима управления параметрами ограничивают, что влияет на длину массива. Если этот предел n больше 0, режим будет использоваться наиболее n -once, а длина массива не будет больше N, а последний элемент массива будет содержать все входы за пределы окончательной границы сопоставления. Если N не является положительным, режим будет использоваться как можно больше, а массив может быть какой -либо длиной. Если n равно 0, то режим будет использоваться как можно больше, массив может быть любой длиной, а строка -конец -Empty будет отброшен.
Например, строка «boo: и: foo» может генерировать следующие результаты с этими параметрами:
REGEXLIMIT Результаты
: 2 {"boo", "и: foo"}: 5 {"boo", "и", "foo"}: -2 {"boo", "и", "foo"} o 5 {"b" "", ": и: f", "", "} o -2 {" b "," ",": и: f "," ","} o 0 {"b", "": и:: f "}
Форма str.split (regex, n), которая вызывает этот метод, точно такой же, как и результаты, полученные следующими выражениями:
Pattern.compile (regex) .split (str, n)
Параметр:
Регулярное выражение регулярного выражения режима
Предел - -резиновый порог, как описано выше
возвращаться:
Строковой массив, он определяется в соответствии с сопоставлением выражения регулярного выражения.
Выбрасывание:
PatternSyntaxException -Если грамматика в регулярном выражении недействительна