Что делает split в java
Перейти к содержимому

Что делает split в java

  • автор:

Разбивка строк с сохранением разделителей в Java

Если вам необходимо разделить строку в Java, одновременно сохранив разделители, используйте класс Pattern с регулярными выражениями и утверждениями положительного просмотра вперед (?=regex) и положительного просмотра назад (?<=regex) . Вот пример кода, в котором в качестве разделителя используется запятая:

Скопировать код

String input = "Привет, мир! Как твои дела?"; String[] result = Pattern.compile("(? <=,)|(?=,)") .splitAsStream(input) .filter(s ->!s.isEmpty()) .toArray(String[]::new);

Если вам нужно использовать другой символ для разделителя, замените запятую на него.

Обработка динамических разделителей: String.format на практике!

Чтобы работать с переменными разделителями, можно использовать метод String.format , который позволяет вставлять разделитель в шаблон регулярного выражения:

Скопировать код

String delimiter = ","; // Здесь ваш динамический разделитель String pattern = String.format("(?<=%1$s)|(?=%1$s)", Pattern.quote(delimiter)); String[] result = Pattern.compile(pattern) .splitAsStream(input) .toArray(String[]::new);

Функция Pattern.quote(delimiter) обрабатывает разделитель как обычный текст, несмотря на любые специальные символы регулярных выражений, которые он может содержать.

Повышение читабельности сложных регулярных выражений

Чтобы сделать код более понятным и удобным для поддержки, старайтесь улучшить читабельность регулярных выражений. Вот пример:

Что делает метод split в js?

Метод split() позволяет разбивать строку на массив строк путём разделения строки указанным сепаратором. Т.е. метод split() возвращает массив данных, которые получились из строки после применения разделителя.

const testStr = 'mama#mila#ramu'; const result = testStr.split('#'); console.log(result); 
-> ['mama', 'mila', 'ramu']; 

Данный метод бывает удобен например для удаления пробелов из строки, или наоборот, превратить строку в массив данных для упрощения обработки, а затем произвести обратную операцию - собрать массив данных в строку с помощью метода массива join() .

Что делает split в java

Метод split() делит строку на список подстрок и возвращает их в виде массива.

const message = "JavaScript::is::fun"; // разделяет строку message на :: let result = message.split("::"); console.log(result); // Вывод в консоль: [ 'JavaScript', 'is', 'fun' ]

Синтаксис split()

Синтаксис метода split() следующий:

str.split(separator, limit);

Где str - это строка.

Параметры split()

Метод split() принимает:

  • separator (необязательно) - шаблон (строка или регулярное выражение), описывающий, где должно происходить каждое разделение.
  • limit (необязательно) - неотрицательное целое число, ограничивающее количество частей, на которые нужно разделить заданную строку.

Возвращаемое значение split()

Возвращает Array строк, разделенных в каждой точке, где в данной строке встречается разделитель.

Примечание: метод split() не изменяет исходную строку.

Примеры

Пример 1: Использование метода split()

console.log("ABCDEF".split("")); // [ 'A', 'B', 'C', 'D', 'E', 'F' ] const text = "Java is awesome. Java is fun."; let pattern = "."; let newText = text.split(pattern); console.log(newText); // [ 'Java is awesome', ' Java is fun', '' ] let pattern1 = "."; let newText1 = text.split(pattern1, 2); console.log(newText1); // [ 'Java is awesome', ' Java is fun' ] const text2 = "JavaScript ; Python ;C;C++"; let pattern2 = ";"; let newText2 = text2.split(pattern2); console.log(newText2); // [ 'JavaScript ', ' Python ', 'C', 'C++' ] // использование регулярного выражения let pattern3 = /\s*(?:;|$)\s*/; let newText3 = text2.split(pattern3); console.log(newText3); // [ 'JavaScript', 'Python', 'C', 'C++' ]

Вывод в консоль:

[ 'A', 'B', 'C', 'D', 'E', 'F' ] [ 'Java is awesome', ' Java is fun', '' ] [ 'Java is awesome', ' Java is fun' ] [ 'JavaScript ', ' Python ', 'C', 'C++' ] [ 'JavaScript', 'Python', 'C', 'C++' ]

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

String.prototype.split()

Метод split() разбивает объект String на массив строк путём разделения строки указанной подстрокой.

Синтаксис

str.split([separator[, limit]])

Параметры

Необязательный параметр. Указывает символы, используемые в качестве разделителя внутри строки. Параметр separator может быть как строкой, так и регулярным выражением. Если параметр опущен, возвращённый массив будет содержать один элемент со всей строкой. Если параметр равен пустой строке, строка str будет преобразована в массив символов.

Необязательный параметр. Целое число, определяющее ограничение на количество найденных подстрок. Метод split() всё равно разделяет строку на каждом сопоставлении с разделителем separator , но обрезает возвращаемый массив так, чтобы он содержал не более limit элементов.

Описание

Метод split() возвращает новый массив.

Если разделитель separator найден, он удаляется из строки, а подстроки возвращаются в массиве. Если разделитель опущен, массив будет содержать только один элемент, состоящий из всей строки. Если разделитель является пустой строкой, строка str будет преобразована в массив символов.

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

Примечание: Если строка является пустой строкой, метод split() вернёт массив, состоящий из одной пустой строки, а не пустой массив.

Примеры

Пример: использование метода split()

В следующем примере определяется функция, которая разбивает строку на массив строк, используя указанный разделитель. После разбиения строки, функция отображает сообщения, показывающие оригинальную строку (до разбиения), используемый разделитель, количество элементов в массиве и сами эти элементы.

function splitString(stringToSplit, separator)  var arrayOfStrings = stringToSplit.split(separator); console.log('Оригинальная строка: "' + stringToSplit + '"'); console.log('Разделитель: "' + separator + '"'); console.log( "Массив содержит " + arrayOfStrings.length + " элементов: " + arrayOfStrings.join(" / "), ); > // Строчка из «Бури» Шекспира. Перевод Михаила Донского. var tempestString = "И как хорош тот новый мир, где есть такие люди!"; var monthString = "Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек"; var space = " "; var comma = ","; splitString(tempestString, space); splitString(tempestString); splitString(monthString, comma); 

Пример сгенерирует следующий вывод:

Оригинальная строка: "И как хорош тот новый мир, где есть такие люди!" Разделитель: " " Массив содержит 10 элементов: И / как / хорош / тот / новый / мир, / где / есть / такие / люди! Оригинальная строка: "И как хорош тот новый мир, где есть такие люди!" Разделитель: "undefined" Массив содержит 1 элементов: И как хорош тот новый мир, где есть такие люди! Оригинальная строка: "Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек" Разделитель: "," Массив содержит 12 элементов: Янв / Фев / Мар / Апр / Май / Июн / Июл / Авг / Сен / Окт / Ноя / Дек

Пример: удаление пробелов из строки

В следующем примере метод split() ищет 0 или более пробелов, за которыми следует точка с запятой, за которой снова следуют 0 или более пробелов, и, если этот шаблон найден, удаляет пробелы из строки. Переменная nameList является массивом, возвращённым в результате работы метода split() .

var names = "Гарри Трамп ;Фрэд Барни; Хелен Ригби ; Билл Абель ;Крис Ханд "; console.log(names); var re = /\s*;\s*/; var nameList = names.split(re); console.log(nameList); 

Пример напечатает две строки; на первой строке напечатана оригинальная строчка, а на второй — получившийся массив.

Гарри Трамп ;Фред Барни; Хелен Ригби ; Билл Абель ;Крис Ханд Гарри Трамп,Фред Барни,Хелен Ригби,Билл Абель,Крис Ханд

Пример: возврат ограниченного числа подстрок

В следующем примере метод split() ищет 0 или более пробелов в строке и возвращает первые три найденных подстроки.

var myString = "Привет, мир. Как дела?"; var splits = myString.split(" ", 3); console.log(splits); 

Вывод скрипта будет следующим:

,,мир.,Как 

Пример: захват подгрупп

Если параметр separator содержит подгруппы, сопоставившиеся результаты также будут присутствовать в возвращённом массиве.

var myString = "Привет 1 мир. Предложение номер 2."; var splits = myString.split(/(\d)/); console.log(splits); 

Вывод скрипта будет следующим:

,1, мир. Предложение номер ,2,. 

Пример: обращение строки при помощи метода split()

var str = "фывапролд"; var strReverse = str.split("").reverse().join(""); // 'длорпавыф' // split() возвращает массив, к которому применяются методы reverse() и join() 

Бонус: используя оператор === (en-US), можно проверить, являлась ли строка палиндромом.

Спецификации

Specification
ECMAScript Language Specification
# sec-string.prototype.split

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

  • String.prototype.charAt()
  • String.prototype.indexOf()
  • String.prototype.lastIndexOf()
  • Array.prototype.join()

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 20 янв. 2024 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

  • Product help
  • Report an issue

Our communities

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *