Java String split(): разделение по одному или нескольким разделителям

В Java при работе со строками мы можем столкнуться с ситуациями, когда нам нужно разбить строку на более мелкие части с использованием нескольких разделителей. Метод split(), предоставляемый классом String, разбивает указанную строку на основе регулярного выражения, что делает его универсальным инструментом для обработки различных разделителей. Он возвращает массив разделенных строк после того, как метод разбивает заданную строку по совпадениям.

Для использования нескольких разделителей регулярное выражение должно определять класс символов, включающий все разделители, по которым мы хотим выполнить разделение.

Регулярное выражение должно быть допустимым шаблоном, и мы должны помнить о необходимости экранирования специальных символов при необходимости.

 Строка str = "как-сделать.in.java";String[] strArray1 = str.split("-"); //[как, сделать, в.java] - 3 токенаString[] strArray2 = str.split("-|\\."); //[как, сделать, в, java] - 5 токенов

1. Метод String split()

1.1 Синтаксис

Метод split() перегружен и принимает следующие параметры.

  • regex – разделительное регулярное выражение.
  • limit – контролирует количество применений шаблона и, следовательно, влияет на длину результирующего массива.
    • Если предел положительный, то шаблон будет применен максимум limit – 1 раз. Длина результирующего массива не будет больше limit, а последняя запись массива будет содержать весь ввод за пределами последнего совпавшего разделителя.
    • Если предел равен нулю, то результирующий массив может быть любого размера. Завершающие пустые строки будут отброшены.
    • Если предел отрицательный, то результирующий массив может быть любого размера.
public String[] split(String regex);public String[] split(String regex, int limit);

1.2. Выдает PatternSyntaxException

Обратите внимание, что split() выдает PatternSyntaxException, если синтаксис регулярного выражения недействителен. В данном примере «[» — недействительное регулярное выражение.

 String[] strArray = "привет мир".split("[");

Вывод программы.

 Исключение в потоке "main" java.util.regex.PatternSyntaxException: Незакрытый класс символов около индекса 0

1.3. «null» не допускается

Метод не принимает аргумент 'null'. Он выдаст исключение NullPointerException, если аргумент метода равен null.

 Исключение в потоке "main" java.lang.NullPointerExceptionв java.lang.String.split(String.java:2324)в com.StringExample.main(StringExample.java:11)

2. Программы Java для разделения строки

2.1. Разделить с указанным разделителем

Следующая программа на Java разбивает строку на основе заданного разделителя — дефиса «-».

 String str = "как делать-на-java-предоставляет-java-tutorials";String[] strArray = str.split("-"); //[как сделать, на, java, предоставляет, java, руководства]

2.2. Разделение по пробелам

Следующая программа Java разбивает строку по пробелу, используя разделитель «\\s». Чтобы разбить по всем пробельным символам(пробелы, табуляции и т. д.), используйте разделитель «\\s+».

String str = "как сделать injava";String[] strArray = str.split("\\s"); //[как, сделать, в, Java]

2.3. Разделить запятой

Программа на Java для разделения строки по разделителю-запятой.

 Строка str = "A,B,C,D";String[] strArray = str.split(","); //[A,B,C,D]

2.4. Разделение несколькими разделителями

Используя регулярные выражения и классы символов в регулярном выражении, мы можем разбить строку на основе нескольких разделителей.

Следующая программа Java разделяет строку с несколькими разделителями, дефисом и точкой. Мы используем оператор OR регулярного выражения и символ '|' между несколькими разделителями.

 Строка str = "как-сделать.in.java";String[] strArray = str.split("-|\\."); //[как, сделать, в, java]

3. Разделить строку на максимальное количество токенов N.

Эта версия метода также разделяет строку, но максимальное количество токенов не может превышать аргумент limit. После того, как метод найдет количество токенов, оставшаяся неразделенная строка возвращается как последний токен, даже если она может содержать разделители.

Ниже приведена программа на Java для разбиения строки по пробелу таким образом, чтобы максимальное количество токенов не превышало 5.

 String str = "как это сделать на Java, предоставляет учебные пособия по Java";Строка[] strArray = str.split("\\s", 5);System.out.println(strArray.length); //5System.out.println(Arrays.toString(strArray)); //[как, что, сделать, в, java предоставляет учебные пособия по java]

4. Заключение

Этот урок по Java String научил нас использовать синтаксис и использование API Spring.split() с простыми для понимания примерами. Мы научились разделять строки, используя различные разделители, такие как запятые, дефисы и даже несколько разделителей в строке.

Прокрутить вверх