Java String split () — это встроенный метод, представленный в JDK 1.4, который разбивает строку везде, где она встречает данное регулярное выражение, и возвращает разделение части в виде массива. Метод string split () разбивает заданную строку вокруг совпадений с заданным регулярным выражением. В этом примере вы узнаете, как разбить строку в Java. Кроме того, если вы хотите преобразовать строку java в массив, то будет полезен пример строки Java split ().
Java String split ()
Во время программирования нам может потребоваться разбить строку на основе некоторых атрибутов. В основном этот атрибут будет разделителем или общим, с помощью которого вы хотите разбить или разделить строку.
Java String split () метод имеет следующие два варианты:
- public String [] split (String regex, int limit)
- public String [] split (регулярное выражение String)
Внутренняя реализация
Давайте посмотрим на внутреннюю реализацию функции split () Java String.
public String [] split (String regex, int limit) {/* fastpath, если регулярное выражение представляет собой (1) строку с одним символом и этот символ не является одним из метасимволов RegEx ». $ | () [{^? * + \ ", или (2) двухсимвольная строка, и первый символ - это обратная косая черта, а второй - не цифра ascii или буква ascii. */char ch = 0; if (((regex.value.length == 1 && ". $ | () [{^? * + \". indexOf (ch = regex.charAt (0)) == -1) || (regex. length () == 2 && regex.charAt (0) == '\' && (((ch = regex.charAt (1)) - '0') | ('9'-ch)) Character.MAX_LOW_SURROGATE)) {int off = 0; int next = 0; логическое ограниченное = ограничение> 0; Список ArrayList = новый список ArrayList (); while ((next = indexOf (ch, off))! = -1) {if (! limited || list.size () 0 && list.get (resultSize - 1) .length () == 0) resultSize--; Строка [] результат = новая Строка [размер результата]; return list.subList (0, resultSize) .toArray (результат); } return Pattern.compile (regex) .split (this, limit); }
Передача лимита в качестве параметра
См. следующий синтаксис.
public String [] split (String regex, int limit)
Параметры:
Строковое регулярное выражение : регулярное выражение, при обнаружении которого должно произойти разбиение.
int limit : целое число, определяющее максимальное количество разбиений в зависимости от того, положительное ли оно, отрицательное или нулевое.
Возвращает: Массив строк, элементы которых состоят из соответствующего разделения исходной строки.
Выбрасывает : При недопустимом синтаксисе регулярного выражения выдает исключение .
Первый вариант метода split () требует, чтобы программист передавал параметр limit , который указывает количество раз рассматриваемая Строка должна быть разделена.
Если limit положительный, то Строка должна быть разделена между limit-1 раз (при встрече t он задал регулярное выражение), и тогда результирующий массив может содержать почти ограниченное количество элементов.
Давайте посмотрим на следующий код.
public class Example1 {public static void main (String [] args) {String s1 = new String ("This-is-a-split-example--"); Строка [] arr = s1.split ("-", 5); для (Строка x: arr) System.out.println (x); }}
Вывод
В приведенном выше примере мы разделили строку из символа — (дефис) .
Давайте посмотрим на другой пример.
публичный класс Example2 {public static void main (String [] args) {String s1 = new String ("This-is-a-split-example--"); Строка [] arr = s1.split ("-", 6); для (Строка x: arr) System.out.println (x); }}
Вывод
См. другой пример.
public class Example3 {public static void main (String [] args) {String s1 = new String ("This-is-a -split-example-- "); Строка [] arr = s1.split ("-", 7); для (Строка x: arr) System.out.println (x); }}
Вывод
Если limit отрицательный, то String может быть разделен любое количество раз (при обнаружении данного регулярного выражения), и результирующий массив может затем содержать любое количество элементов.
Если рядом с регулярным выражением нет ничего для разделения, то в таком случае к массиву добавляется пустое пространство.
См. следующий пример кода.
public class Example4 {public static void main (String [] args) {String s1 = new String ("This-is-a-split-example--"); Строка [] arr = s1.split ("-", -2); для (Строка x: arr) System.out.println (x); }}
Вывод
Если limit равен нулю, то String можно разделить любое количество раз (при обнаружении данного регулярного выражения), и результирующий массив может затем содержать любое количество элементов, как в случае отрицательного предела . Но конечные пустые пробелы в этом случае не включаются в массив.
См. другой пример.
public class Example5 {public static void main (String [] args) {String s1 = new String ("This-is-a-split-example--"); String [] arr = s1.split ("-", 0); for (String x: arr) System.out.println (x);}}
Вывод
Без передачи лимита в качестве параметр
Синтаксис: public String [] split (String regex)
Параметры: String regex : Регулярное выражение, при обнаружении которого должно произойти разбиение.
Возвращает : Массив строк, i которых состоит из разбиения начального Stri нг соответственно. Здесь ограничение по умолчанию установлено равным нулю, и, следовательно, результирующий массив создается соответственно.
Выдает: При недопустимом синтаксисе регулярного выражения выдает PatternSyntaxException .
См. пример строки split () с регулярным выражением.
public class Example6 {public static void main (String [] args) {String s1 = new String ("This-is-a-split-example--"); Строка [] arr = s1.split ("-"); для (Строка x: arr) System.out.println (x); }}
Вывод
Наконец, пример функции Java String split () завершен.
Похожие сообщения
Java String join ()
Java String intern ()
Java String replace ()
Java String replaceAll ()
Формат строки Java ()