str_split — Преобразует строку в массив


Содержание

str_split

Синтаксис:

str_split (string [split_length] )

Поддерживается следующими версиями PHP:

Описание функции:

Функция str_split () конвертирует строку в массив.

Обязательный аргумент. Строка преобразуемая в массив.

Необязательный аргумент. Аргумент определяет длину элемента массива.

Если аргумент не задан, то длина каждого элемента массива будет равна единице.

Если split_length больше длины строки, то будет возвращен массив с единственным элементом содержащим всю строку.

Если split_length меньше единицы, то будет возвращено FALSE

Примеры:

Пример 1:

$out = str_split(«PHP — система разработки сценариев», 5);
print_r ($out);
?>

Array ( [0] => PHP — [1] => сист [2] => ема р [3] => азраб [4] => отки [5] => сцена [6] => риев )

Пример 2:

Array ( [0] => P [1] => H [2] => P )

Пример 3:

$out = str_split(«PHP — система разработки сценариев», 50 );
print_r ($out);
?>

Array ( [0] => PHP — система разработки сценариев )

Пример 4:

В этом примере длина split_length меньше единицы, поэтому будет возвращено FALSE

$out = str_split(«PHP — система разработки сценариев», 0);
var_dump ($out);
?>

Преобразование строки в массив без использования функции Split

Есть ли способ преобразовать строку ( «abcdef» ) в массив строк, содержащий ее символ ( [«a»,»b»,»c»,»d»,»e»,»f»] ) без использования функция String.Split ?

5 ответов

Итак, вы хотите массив string , по одному char каждый:

Это работает, потому что string реализует IEnumerable . Поэтому Select(c => c.ToString()) проецирует каждый char в string на string представляющую этот char а ToArray перечисляет проекцию и преобразует результат в массив string .

Если вы используете старую версию C #:

Вы можете использовать linq и сделать:

Это даст вам массив строк вместо массива символов.

Почему бы тебе просто

показать первую букву строки; это будет «а» в этом случае.

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

PHP: конвертирование массива в строку

В этой статье разберем как преобразовывать массив в строку и обратно.

Есть два способа преобразовать массив в строку в PHP.

  1. Использование функции implode()
  2. Использование функции json_encode()

Использование функции implode()

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

В приведенном выше примере в первой строке объявлена ​​переменная массива и ей присвоены некоторые значения.

На следующей строке функция implode() преобразует массив в строку. Два параметра передаются в функцию implode(). Первый — это разделитель, а второй — массив.

Вы также можете преобразовать полученную строку если требуется обратно в массив. Для этого мы можем использовать функцию PHP explode().

Функция explode()

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

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

Использование функции json()

В PHP объекты могут быть преобразованы в строку JSON с помощью функции json_encode().

Обычное использование JSON — это чтение данных с веб-сервера и отображение данных на веб-странице.

В приведенном выше примере мы присвоили значение переменной объекта, а затем в json_encode() преобразовали значение в переменную массива и создали ассоциативный массив.

Форум

Справочник

Поиск по форуму
Расширенный поиск
К странице.

Илья Кантор, 10 мая 2009 — 18:50

split

Синтаксис

Аргументы

Описание, примеры

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

Строка бьется по separator , при разбивании separator пропадает:

Если separator не указан или совпадений нет, то возвращаемый массив состоит из одного элемента — исходной строки.

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

Если вызывающая строка пуста, то split возвращает массив из одной пустой строки, а не пустой массив.

Следующий пример делит по ‘,’ и убирает лишние пробелы вокруг запятой.

При делении с ограничением limit — элементы массива свыше limit будут отброшены.

Это поведение отличается от принятого во многих языках програмирования.

Следующий пример иллюстрирует добавление в массив результатов захвата вложенными скобками.

Благодаря скобкам, найденный разделитель separator сохранился и вошел в результирующий массив.

См. также

Можно ли по аналогии с myString.split(/(\d)/)
использовать что-то вроде myString.split(/(\[A-Za-z0-9])/) ?
Естественно это не работает, но что-то в этом духе

Как найти отдельные слова и строчки в кавычках? В поисковых строках обычно когда надо найти фразу, то её берут в кавычки. Например:

word «big phrase»

Такой текст должен быть разделён на два элемента массива:
1) word
2) big phrase

Как это сделать?

Попробуй экранировать слеш: arr_str = pic_msg.split(‘ ‘);

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

А дальше берёте $1 и вставляете в массив отдельно.
С уважением, Р.Н. Юрьев.

сори
я допустил описку во второй строке, следует читать так
var arr_str =str_ing.split(re);

Мне надо написать класс, который считал бы сегменты. И чтоб он не разделял, например: «как-то», считал за один сегмент. прошу Вас, люди добрые помогите! я представления не имею, как это сделать.

Подскажите, пожалуйста, как можно разбить строку по всем прописным буквам?

Почему вы переводите в «If separator is a regular expression that contains capturing parentheses, then each time separator is matched, the results (including any undefined results) of the capturing parentheses are spliced into the output array. However, not all browsers support this capability.» capturing как вложенные? capturing — захватывающие, имеется в виду открывающая и закрывающая скобка.

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

sel,1,function(par1,par2),2

Результат: «sel»,»1″,»function(par1,par2)»,»2″
Заранее спасибо!

Нашел скрипт, который считает слова в тексте. Слова считаю в XUL textbox.

Все работает при латинице. Однако кириллические буквы и слова не видит. Скрипт привожу ниже.

Как мне посчитать слова на любом языке?

Здравствуйте! Есть один вопрос:
Есть текстовое поле, в которое вводим числа через пробел — целые, дробные, отрицательные — все короче. Нужно найти максимум среди этих чисел.
Есть идея, что нужно строку разбить на элементы, запилить эти элементы в числовой формат и сделать из них массив чисел. А потом уже пробежаться по массиву функцией Math.max.
Подскажите пожалуйста, как из строки чисел сделать массив чисел. Пожалуйста, помогите! :-)

________________ «Метод split возвращает новый массив.»
Вот он массив уже возвращает. А в качестве разделителя используй » «

Люди, помогите, пожалуйста. Есть задача: считать файл, разбить текст по строкам и занести эти строки в массив, методом перебора перебрать все элементы массива и удалить те, в которых есть символ «;», а также убрать пробелы и пустые строки, очищенный массив сохранить в новом файле. Алгоритм как это сделать понимаю, не хватает знаний реализовать это!

Подскажите, а если есть строка (я ее достаю как значение ключа из объекта device)

Нужно получить точно такой же массив

Как это сделать?

Интересно,а как преобразовать строку в ассоциативный массив?

Подскажите, пожалуйста, как сделать, если нужно, чтобы разделителей было несколько. Например, есть текст:

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

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

Пустой массив в языке javascript. Преобразование строки в массив — split. Методы pop() и shift()

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

Методы pop/push и shift/unshift

Рассмотрим методы pop() и push(). Эти методы позволяют работать с массивами как со стеками. Стек — это структура данных, в которой доступ к элементам организован по принципу LIFO (англ. last in — first out, «последним пришёл — первым ушел»). Принцип работы стека можно сравнить со стопкой тарелок: чтобы взять вторую сверху, нужно снять верхнюю. Как это работает изображено на рисунке:

И так вернемся к рассмотрению методов push() и pop(). Метод push() добавляет один или несколько новых элементов в конец массива и возвращает его новую длину. Метод pop() — удаляет последний элемент массива, уменьшает длину массива и возвращает удаленное им значение. Стоит обратить внимание на то, что оба эти метода изменяют массив на месте, а не создают его модифицированную копию.

Var foo = ; // foo: foo.push(1,2); // foo: Возвращает 2 foo.pop(); // foo: Возвращает 2 foo.push(3); // foo: Возвращает 2 foo.pop(); // foo: Возвращает 3 foo.push(); // foo: ] Возвращает 2 foo.pop() // foo: Возвращает foo.pop(); // foo: Возвращает 1 var fruits = [«груши», «бананы», «яблоки»]; var picked = fruits.pop(); document.write(«Вы сорвали мои » + picked); Попробовать »

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

Var f = ; // f: f.unshift(1); // f: Возвращает: 1 f.unshift(22); // f: Возвращает: 2 f.shift(); // f: Возвращает: 22 f.unshift(3,); // f:,1] Возвращает: 3 f.shift(); // f:[,1] Возвращает: 3 f.shift(); // f: Возвращает: f.shift(); // f: Возвращает: 1

Метод join

Метод Array.join() используется для объединения элементов массива в одну строку. Методу можно передать необязательный строковой аргумент, который будет использоваться для разделения элементов в строке. Если разделитель не задан, то при вызове метода символом-разделителем по умолчанию будет запятая.

Var a = [«Ветер»,»Дождь»,»Огонь»]; var myVar1 = a.join(); //»Ветер,Дождь,Огонь» var myVar2 = a.join(«, «); //»Ветер, Дождь, Огонь» var myVar3 = a.join(» + «); //»Ветер + Дождь + Огонь» document.write(myVar1 + «
» + myVar2 + «
» + myVar3); Попробовать »

Метод Array.join() является обратным по отношению к методу String.split(), который создает массив путем разбиения строки на фрагменты.

Метод reverse

Метод Array.reverse() меняет порядок следования элементов в массиве на противоположный и возвращает массив с переставленными элементами. Этот метод не создает новый массив с переупорядоченными элементами, а переупорядочивает их в уже существующем массиве.

Var myArr = [«один», «два», «три»]; document.write(myArr.reverse()); Попробовать »

Метод concat

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

Var a = ; a.concat(4, 5) //Возвращает a.concat(); //тоже самое — возвращает a.concat(,) //Возвращает

Метод sort

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

Var a = [«Киви», «Апельсины», «Груши»]; a.sort(); var s = a.join(«, «); //Апельсины, Груши, Киви document.write(s); //пример с числами var myArr = ; myArr.sort(); document.write(myArr); //1,10,2 Попробовать »

Наверное от сортировки чисел вы ожидали увидеть немного другой результат. Такая сортировка произошла потому, что метод sort() сортирует элементы, преобразуя их в строки. Поэтому и порядок у них получается строковой — ведь «10»

Для сортировки в каком-либо ином порядке, отличном от алфавитного, можно передать методу sort() в качестве аргумента функцию сравнения. Следует однако учесть, что функцию сравнения придется писать самим. Эта функция должна иметь два параметра, так как она устанавливает, какой из двух ее аргументов должен присутствовать раньше в отсортированном списке. Чтобы было легче разобраться и написать такую функцию, есть несколько правил, по которым будет определяться порядок элементов:

  • Если первый аргумент должен предшествовать второму, функция сравнения возвращает отрицательное число (если a
  • Если первый аргумент должен следовать за вторым, то функция сравнения возвращает положительное число (если a > b)
  • Если два значения эквивалентны (т. е. порядок их расположения не важен), функция сравнения возвращает 0 (если a == b)

Для сравнения в качестве своих аргументов функция использует элементы массива:

Function foo(a,b) < //определяем функцию проверки if (a b) return 1; return 0; //если a == b >var a = ; a.sort(foo); //в качестве аргумента передается только имя функции document.write(a.join(«, «)); //тоже самое записать более коротко var a = ; a.sort(function(a,b) < //используем анонимную функцию return a - b; //функция возвращает значение 0 >); document.write(a); //1,2,5,10 Попробовать »

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

Примечание: Если в массиве есть неопределенные элементы (undefined), они переносятся в конец массива.

Метод slice

Метод Array.slice() используется для копирования указанного участка из массива и возвращает новый массив содержащий скопированные элементы. Исходный массив при этом не меняется.

Имя_массива следует заменить именем того массива, из которого нужно извлечь определенный набор элементов для нового массива. Метод принимает два аргумента, которые определяют начало и конец возвращаемого участка массива. Метод копирует участок массива, начиная от begin до end, не включая end. Если указан только один аргумент, возвращаемый массив будет содержать все элементы от указанной позиции до конца массива. Можно использовать отрицательные индексы — они отсчитываются с конца массива.

Var arr = ; arr.slice(0,3); //Возвращает arr.slice(3); //Возвращает arr.slice(1,-1); //Возвращает arr.slice(-3,-2); //Возвращает

Метод splice

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

Имя_массива.splice(index , кол-во, elem1, . elemN);

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

Var fruits = [«апельсины», «яблоки», «груши», «виноград»]; var deleted = fruits.splice(2,2); //возвращает [«груши», «виноград»] document.write(deleted); var arr = ; arr.splice(4); //Возвращает ; массив стал: arr.splice(1,2); //Возвращает ; массив стал: arr.splice(1,1); //Возвращает ; массив стал: Попробовать »

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

Var fruits = [«апельсины», «яблоки»]; fruits.splice(2,0, «арбузы»); //возвращает document.write(fruits); //стало [«апельсины», «яблоки», «арбузы»] var arr = ; arr.splice(2,0,»a»,»b»); //Возвращает ; стало arr.splice(2,2,); //Возвращает [«a»,»b»]; стало ,3,4,5] Попробовать »

Стоит обратить внимание, что в отличие от concat(), метод splice() не разбивает на отдельные элементы массивы, передаваемые в качестве аргументов. То есть, если методу передается массив для вставки, он вставляет сам массив, а не элементы этого массива.

Метод toString

Метод toString() преобразует элементы массива в строку, используя в качестве символа-разделителя запятую.

Var arr = [«Молоко»,»Хлеб»,»Печенье»]; var food = arr.toString(); document.write(food); //Молок,Хлеб,Печенье Попробовать »

Обратите внимание, метод возвращает ту же строку, что и метод join() при вызове его без аргументов.

indexOf и lastIndexOf

Метод indexOf возвращает индекс элемента, значение которого равно значению, переданному методу в качестве аргумента.

Синтаксис методов indexOf() и lastIndexOf():

Имя_массива.indexOf(искомый_элемент, индекс) имя_массива.lastIndexOf(искомый_элемент, индекс)

Первый аргумент метода указывает значение элемента, индекс которого нужно найти, второй аргумент (необязательный), указывает индекс с которого будет начинаться поиск. Если одинаковых вхождений несколько, выбирается наименьший (первый) индекс. Если элемент с искомым значением не найден, метод вернет -1. Внутри метода для поиска используется строгое сравнение (===).

Var a = ; a.indexOf(3); //вернет 2 a.indexOf(3,4); //вернет 6 a.indexOf(35); //вернет -1: нет элемента с таким значением a.indexOf(2); // 1

Метод lastIndexOf() тоже возвращает индекс элемента, значение которого равно значению, переданному методу в качестве аргумента. Разница лишь в том, что метод lastIndexOf() выбирает наибольший (последний) индекс.

Var a = ; a.lastIndexOf(3); //вернет 7 a.lastIndexOf(35); //вернет -1: нет элемента с таким значением a.lastIndexOf(2); // 6

Методы итераторы

Методы, описанные ниже, являются итераторами. Во всех современных браузерах для работы с массивами есть методы, которые предназначены для перебора элементов и выполнения различных действий над ними. Это методы forEach(), map(), filter(), every(), some, reduce() и reduceRight().

Они перебирают элементы массива начиная с 0 до length — 1 и, если элемент существует, передают его в callback обработчик-функцию.

forEach

В качестве первого аргумента указывается callback-функция, которую метод forEach() будет вызывать для каждого элемента массива. Реализацию вызываемой функции-обработчика нужно писать самим. Вызываемая функция должна иметь три параметра: первый параметр принимает в качестве аргумента — значение элемента массива, второй — индекс элемента, и третий — сам массив. Однако, если нужно использовать только значения элементов массива, можно написать функцию только с одним параметром. Второй аргумент — thisArg (необязательный) будет передан в качестве значения this.

Var arr = ; function foo(value) < var sum = value * this; return document.write(sum + "
«); > arr.forEach(foo, 5); //второй аргумент будет передан в качестве значения this //пример с тремя параметрами var a = ; a.forEach(function(el, ]
«); >); Попробовать »

filter

Метод filter() создает и возвращает новый массив, который будет содержать только те элементы массива, для которых вызов функции callback возвратит true.

Function isBig(element, index, array) < //возвращает числа, которые больше или равны 10 return (element >= 10); //если значение элемента больше или равно 10 — выражение вернет true > var filtered = .filter(isBig); //filtered

Метод map() создает и возвращает новый массив, который будет состоять из результатов вызова функции callback(item, idx, ar) для каждого элемента массива.

Var a = ; var b = a.map(function(item, >

every и some

Метод every() возвращает true, если для всех элементов массива указанная функция, используемая для их проверки, вернет true.

Метод some() возвращает true, если во время проверки в указанной функции один или несколько элементов вернут true.

Var a = ; a.every(function(x) < return x 10; >) //true: одно число > 10

reduce и reduceRight

Имя_массива.reduce(callback, initialValue) имя_массива.reduceRight(callback, initialValue)

Метод reduce() применяет указанную функцию (callback) в отношении сразу двух значений в массиве, перебирая элементы слева направо, сохраняя при этом промежуточный результат.

Аргументы функции callback: (previousValue, currentItem, index, array)

  • previousValue — возвращаемый результат callback функции (он же промежуточный результат)
  • currentItem — текущий элемент массива (элементы перебираются по очереди слева-направо)
  • index — индекс текущего элемента
  • array — обрабатываемый массив

initialValue (инициализирующее значение) — объект, используемый в качестве первого аргумента первого вызова функции callback. Проще говоря, значение previousValue при первом вызове равно initialValue. Если initialValue нет, то оно равно первому элементу массива, а перебор начинается со второго:

Var a = ; function foo(prevNum,curNum) < sum = prevNum + curNum; alert(sum); return sum; >var result = a.reduce(foo, 0); document.write(result); Попробовать »

Разберем как работает этот пример. Первыми аргументами функции foo являются:

  • prevNum = 0 (так как initialValue — 0)
  • curNum = 1 (текущий элемент — 1-ый элемент массива)

К числу 0 прибавляется 1. Этот результат (sum: 1) будет передан как prevNum при следующем запуске функции. И так далее пока не дойдет до последнего элемента. Возвращенный результат — сумма от последнего запуска, составит 15 (1+2+3+4+5).

Метод reduceRight работает аналогично методу reduce, но идет по массиву справа-налево:

Var a = [«h»,»o»,»m»,»e»]; function bar(prevStr, curItem) < return prevStr + curItem; >document.write(a.reduceRight(bar)); //emoh

В этой статье мы рассмотрим JavaScript-массив, его составляющие. JavaScript является идеально-ориентированным созданным для программирования. Фактически он реализует язык ECMAScript (эталон ECMA-262).

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

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

Вообще, на JavaScript повлияли разные причины, ведь при разработке хотели создать язык, похожий на Java, но лёгкий для использования программистами. Кстати, языком JavaScript не владеет какое-либо предприятие или организация, что делает его непохожим на ряд программных стилей, применяемых веб-разработчиками.

Необходимо отметить, что JavaScript — зарегистрированный товарный знак концерна Oracle Corporation.

Что такое массив?

Массивом называют который хранит пронумерованные значения. Каждое такое значение именуется компонентом массива, а цифру, с которой связывается компонент, называют индексом. JavaScript-массив нетипизирован. Это означает, что детали массива могут иметь какой угодно тип, причём разные детали, принадлежащие одному массиву, имеют совершенно разные типы.

Кроме этого, JavaScript-массив является динамическим, а это говорит о том, что фиксированный размер нет необходимости объявлять. Ведь добавлять новые детали можно в любой момент.

Производство массива

Используя язык JavaScript, создать массив совершенно не трудно. Имеется для этого два метода. Первый предусматривает изготовление массива с помощью литерала — квадратных скобок, внутри которых размещён список деталей, поделенных запятыми.

  • var empty = ; //пустой массив;
  • var numers = ; //массив с пятью цифровыми компонентами;
  • var diff = ; //массив с тремя элементами разного вида.

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

Вторым способом создания массива является вызов проектировщика Array(). Пригласить его можно тремя методами:

  • Вызов проектировщика без доводов: var b — new Array(). Здесь предусмотрено создание пустого массива, эквивалентного пустому литералу .
  • Конструктор явно имеет указания значения n компонентов массива: var b = new Array (1, 3, 5, 8, «строка», true). В данном случае проектировщику преподносится список аргументов, которые превращаются в компоненты нового массива. Аргументы пишутся в массив в том расположении, в котором указаны.
  • Определение области для последующего приписывания значений. Это делается с помощью указания при выявлении массива одного числа, заключённого в круглые скобки: var b = new Array(5). Данный способ выявления предполагает выделение массиву необходимого количества компонентов (каждый из которых значится как undefined) с возможностью последующего приписывания значений в процессе изложения. Такую форму обычно используют, чтобы предварительно разместить тот Javascript-массив, у которого длина известна заранее.

Запись, чтение и добавление деталей массива

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

Необходимо отметить, что в массивах JavaScript можно хранить какое угодно количество элементов любого вида.

Длина массива

Итак, мы знаем, Длина массива вообще является интересным явлением. Рассмотрим его подробней. Все массивы, как сконструированные с помощью проектировщика Array(), так и выявленные благодаря литералу массива, имеют специфическое свойство length, которое отзывает общее количество сберегаемых элементов. Так как в массиве могут находиться неопределённые детали (обозначаемые undefined), более точное выражение звучит таким образом: качество length всегда больше на единицу, чем самый большой номер (индекс) компонента массива. Качество length корректируется автоматически, оставаясь точным при появлении в массиве новых деталей.

Чтобы появился завершающий компонент массива, можно использовать свойство length.

Последняя деталь имеет индекс на единицу меньше чем, размер массива. Ведь отсчёт начинают всегда с нуля. Ох уж этот JavaScript! Длина массива его зависит от точного количества элементов. Поэтому если вы не знаете, сколько их должно быть, но вам нужно обратиться к завершающему элементу массива, нужно применить запись: v.length — 1.

Перебор деталей массива

Очень часто свойство length используют для перебора деталей массива в цикле:

  • var fruits = [«клубника», «персик», «яблоко», «банан»];
  • for(var I = 0; i element + index); console.log(testMap); //

или каждое значение массива умножим к примеру на 12

Let arr = ; let testMap = arr.map(a => a * 12); console.log(testMap); // →

filter

Метод filter() используется для фильтрации массивов. Он проходит по массиву, возвращая только те элементы, которые проходят заданное условие.

Например отфильтруем значения массива из чисел оставив только те, которые больше 21

Let arr = ; let testFilter = arr.filter(element => element > 21); console.log(testFilter); // →

Обратите внимание, что 21 не вошло в результат массива, так как условие было вернуть то что больше 21. Чтобы и 21 вошло в массив, то условие ставим как больше или равно: element >= 21

reduce

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

Часто этот метод применяют для того, чтобы найти сумму всех чисел в массиве. Пример:

Let arr = ; let summa = arr.reduce((acc, element) => acc + element); console.log(summa); // → 370

Метод sort() применяется для сортировки элементов массива согласно заданным параметрам.

Пример — возьмём массив чисел о отсортируем их по порядку возврастания:

Let arr = ; let testSortArr = arr.sort((a, b) => a — b); console.log(testSortArr); // →

includes

Метод includes() определяет, содержит ли массив определённый элемент, возвращая в зависимости от этого true или false .

Пример использования includes() .

Вот такое логическое выражение:

Let animal = «dog»; if (animal == «cat» || animal == «dog» || animal == «lion» || animal == «horse») < // . >

используя метод includes можно записать вот так:

Let animal = «dog»; const animals = [«cat», «dog», «lion», «horse»]; if (animals.includes(animal)) < // . >

В большинстве приложений, которые разрабатываются в наши дни, требуется взаимодействовать с некими наборами данных. Обработка элементов в коллекциях — это часто встречающаяся операция, с который вы, наверняка, сталкивались. При работе, например, с массивами, можно, не задумываясь, пользоваться обычным циклом for , который выглядит примерно так: for (var i=0; i 1. Оператор расширения

▍Сильные стороны оператора расширения

  • Это — простой и быстрый способ «вытащить» из массива его отдельные элементы.
  • Этот оператор подходит для работы с литералами массивов и объектов.
  • Это — быстрый и интуитивно понятный метод работы с аргументами функций.
  • Оператор расширения не занимает много места в коде — он выглядит как три точки (…).

▍Пример

2. Цикл for…of

▍Сильные стороны цикла for…of

  • Это — простой способ для добавления или обновления элементов коллекций.
  • Цикл for…of позволяет выполнять различные вычисления с использованием элементов (суммирование, умножение, и так далее).
  • Им удобно пользоваться при необходимости выполнения проверки каких-либо условий.
  • Его использование ведёт к написанию более чистого и читабельного кода.


▍Пример

3. Метод includes()

▍Сильные стороны метода includes()

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

▍Пример

4. Метод some()

▍Сильные стороны метода some()

  • Метод some() позволяет проверить, имеется ли в массиве хотя бы один из интересующих нас элементов.
  • Он выполняет проверку условия с использованием переданной ему функции.
  • Этим методом удобно пользоваться.

▍Пример

5. Метод every()

▍Сильные стороны метода every()

  • Метод every() позволяет проверить соответствие условию всех элементов массива.
  • Условия можно задавать с использованием функций.
  • Он способствует применению декларативного подхода при программировании.

▍Пример

6. Метод filter()

▍Сильные стороны метода filter()

  • Метод filter() позволяет избежать модификации исходного массива.
  • Он позволяет избавиться от ненужных элементов.
  • Он улучшает читабельность кода.

▍Пример

7. Метод map()

▍Сильные стороны метода map()

  • Метод map() позволяет избежать необходимости изменения элементов исходного массива.
  • С его помощью удобно модифицировать элементы массивов.
  • Он улучшает читаемость кода.

▍Пример

8. Метод reduce()

▍Сильные стороны метода reduce()

  • С помощью метода reduce() можно посчитать сумму или среднее значение элементов массива.
  • Этот метод ускоряет и упрощает проведение вычислений.

▍Пример

Массив — это упорядоченная коллекция значений. Значения в массиве называются элементами, и каждый элемент характеризуется числовой позицией в массиве, которая называется индексом. Массивы в языке JavaScript являются нетипизированными: элементы массива могут иметь любой тип, причем разные элементы одного и того же массива могут иметь разные типы. Элементы массива могут даже быть объектами или другими массивами, что позволяет создавать сложные структуры данных, такие как массивы объектов и массивы массивов.

Отсчет индексов массивов в языке JavaScript начинается с нуля и для них используются 32-битные целые числа — первый элемент массива имеет индекс 0. Массивы в JavaScript являются динамическими: они могут увеличиваться и уменьшаться в размерах по мере необходимости; нет необходимости объявлять фиксированные размеры массивов при их создании или повторно распределять память при изменении их размеров.

Массивы в языке JavaScript — это специализированная форма объектов, а индексы массивов означают чуть больше, чем просто имена свойств, которые по совпадению являются целыми числами.

Создание массивов

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

Var empty = ; // Пустой массив var numbers = ; // Массив с пятью числовыми элементами var misc = [ 1.1, true, «a», ]; // 3 элемента разных типов + завершающая запятая var base = 1024; var table = ; // Массив с переменными var arrObj = [, ]; // 2 массива внутри, содержащие объекты

Синтаксис литералов массивов позволяет вставлять необязательную завершающую запятую, т.е. литерал [,] соответствует массиву с двумя элементами, а не с тремя.

Другой способ создания массива состоит в вызове конструктора Array() . Вызвать конструктор можно тремя разными способами:

Вызвать конструктор без аргументов:

Var arr = new Array();

В этом случае будет создан пустой массив, эквивалентный литералу .

Вызвать конструктор с единственным числовым аргументом, определяющим длину массива:

Var arr = new Array(10);

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

Явно указать в вызове конструктора значения первых двух или более элементов массива или один нечисловой элемент:

Var arr = new Array(5, 4, 3, 2, 1, «тест»);

В этом случае аргументы конструктора становятся значениями элементов нового массива. Использование литералов массивов практически всегда проще, чем подобное применение конструктора Array().

Чтение и запись элементов массива

Доступ к элементам массива осуществляется с помощью оператора . Слева от скобок должна присутствовать ссылка на массив. Внутри скобок должно находиться произвольное выражение, возвращающее неотрицательное целое значение. Этот синтаксис пригоден как для чтения, так и для записи значения элемента массива. Следовательно, допустимы все приведенные далее JavaScript-инструкции:

// Создать массив с одним элементом var arr = [«world»]; // Прочитать элемент 0 var value = arr; // Записать значение в элемент 1 arr = 3.14; // Записать значение в элемент 2 i = 2; arr[i] = 3; // Записать значение в элемент 3 arr = «привет»; // Прочитать элементы 0 и 2, записать значение в элемент 3 arr] = arr;

Напомню, что массивы являются специализированной разновидностью объектов. Квадратные скобки, используемые для доступа к элементам массива, действуют точно так же, как квадратные скобки, используемые для доступа к свойствам объекта. Интерпретатор JavaScript преобразует указанные в скобках числовые индексы в строки — индекс 1 превращается в строку «1» — а затем использует строки как имена свойств.

В преобразовании числовых индексов в строки нет ничего особенного: то же самое можно проделывать с обычными объектами:

Var obj = <>; // Создать простой объект obj = «one»; // Индексировать его целыми числами

Особенность массивов состоит в том, что при использовании имен свойств, которые являются неотрицательными целыми числами, массивы автоматически определяют значение свойства length . Например, выше был создан массив arr с единственным элементом. Затем были присвоены значения его элементам с индексами 1, 2 и 3. В результате этих операций значение свойства length массива изменилось и стало равным 4.

Следует четко отличать индексы в массиве от имен свойств объектов. Все индексы являются именами свойств, но только свойства с именами, представленными целыми числами являются индексами. Все массивы являются объектами, и вы можете добавлять к ним свойства с любыми именами. Однако если вы затрагиваете свойства, которые являются индексами массива, массивы реагируют на это, обновляя значение свойства length при необходимости.

Обратите внимание, что в качестве индексов массивов допускается использовать отрицательные и не целые числа. В этом случае числа преобразуются в строки, которые используются как имена свойств.

Добавление и удаление элементов массива

Мы уже видели, что самый простой способ добавить элементы в массив заключается в том, чтобы присвоить значения новым индексам. Для добавления одного или более элементов в конец массива можно также использовать метод push() :

Var arr = ; // Создать пустой массив arr.push(«zero»); // Добавить значение в конец arr.push(«one»,2); // Добавить еще два значения

Добавить элемент в конец массива можно также, присвоив значение элементу arr. Для вставки элемента в начало массива можно использовать метод unshift() , при этом существующие элементы в массиве смещаются в позиции с более высокими индексами.

Удалять элементы массива можно с помощью оператора delete, как обычные свойства объектов:

Var arr = ; delete arr; 2 in arr; // false, индекс 2 в массиве не определен arr.length; // 3: оператор delete не изменяет свойство length массива

Удаление элемента напоминает (но несколько отличается) присваивание значения undefined этому элементу. Обратите внимание, что применение оператора delete к элементу массива не изменяет значение свойства length и не сдвигает вниз элементы с более высокими индексами, чтобы заполнить пустоту, оставшуюся после удаления элемента.

Кроме того имеется возможность удалять элементы в конце массива простым присваиванием нового значения свойству length. Массивы имеют метод pop() (противоположный методу push()), который уменьшает длину массива на 1 и возвращает значение удаленного элемента. Также имеется метод shift() (противоположный методу unshift()), который удаляет элемент в начале массива. В отличие от оператора delete, метод shift() сдвигает все элементы вниз на позицию ниже их текущих индексов.

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

Многомерные массивы

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

Например, предположим, что переменная matrix — это массив массивов чисел. Каждый элемент matrix[x] — это массив чисел. Для доступа к определенному числу в массиве можно использовать выражение matrix[x][y]. Ниже приводится конкретный пример, где двумерный массив используется в качестве таблицы умножения:

// Создать многомерный массив var table = new Array(10); // В таблице 10 строк for(var i = 0; i

Методы класса Array

Стандарт ECMAScript 3 определяет в составе Array.prototype множество удобных функций для работы с массивами, которые доступны как методы любого массива. Эти методы будут представлены в следующих подразделах.

Метод join()

Метод Array.join() преобразует все элементы массива в строки, объединяет их и возвращает получившуюся строку. В необязательном аргументе методу можно передать строку, которая будет использоваться для отделения элементов в строке результата. Если строка-разделитель не указана, используется запятая. Например, следующий фрагмент дает в результате строку «1,2,3»:

Var arr = ; arr.join(); // «1,2,3» arr.join(«-«); // «1-2-3»

Метод reverse()

Метод Array.reverse() меняет порядок следования элементов в массиве на обратный и возвращает переупорядоченный массив. Перестановка выполняется непосредственно в исходном массиве, т.е. этот метод не создает новый массив с переупорядоченными элементами, а переупорядочивает их в уже существующем массиве. Например, следующий фрагмент, где используются методы reverse() и join(), дает в результате строку «3,2,1»:

Var arr = ; arr.reverse().join(); // «3,2,1»

Метод sort()

Метод Array.sort() сортирует элементы в исходном массиве и возвращает отсортированный массив. Если метод sort() вызывается без аргументов, сортировка выполняется в алфавитном порядке (для сравнения элементы временно преобразуются в строки, если это необходимо). Неопределенные элементы переносятся в конец массива.

Для сортировки в каком-либо ином порядке, отличном от алфавитного, методу sort() можно передать функцию сравнения в качестве аргумента. Эта функция устанавливает, какой из двух ее аргументов должен следовать раньше в отсортированном списке. Если первый аргумент должен предшествовать второму, функция сравнения должна возвращать отрицательное число. Если первый аргумент должен следовать за вторым в отсортированном массиве, то функция должна возвращать число больше нуля. А если два значения эквивалентны (т.е. порядок их следования не важен), функция сравнения должна возвращать 0:

Var arr = ; arr.sort(); // Алфавитный порядок: 1111, 222, 33, 4 arr.sort(function(a,b) < // Числовой порядок: 4, 33, 222, 1111 return a-b; // Возвращает значение 0 // в зависимости от порядка сортировки a и b >); // Сортируем в обратном направлении, от большего к меньшему arr.sort(function(a,b) );

Обратите внимание, насколько удобно использовать в этом фрагменте неименованную функцию. Функция сравнения используется только здесь, поэтому нет необходимости давать ей имя.

Метод concat()

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

Var arr = ; arr.concat(4, 5); // Вернет arr.concat(); // Вернет arr.concat(,) // Вернет arr.concat(4, ]) // Вернет ]

Метод slice()

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

Если указан только один аргумент, возвращаемый массив содержит все элементы от начальной позиции до конца массива. Если какой-либо из аргументов имеет отрицательное значение, он определяет номер элемента относительно конца массива. Так, аргументу -1 соответствует последний элемент массива, а аргументу -3 — третий элемент массива с конца. Вот несколько примеров:

Var arr = ; arr.slice(0,3); // Вернет arr.slice(3); // Вернет arr.slice(1,-1); // Вернет arr.slice(-3,-2); // Вернет

Метод splice()

Метод Array.splice() — это универсальный метод, выполняющий вставку или удаление элементов массива. В отличие от методов slice() и concat(), метод splice() изменяет исходный массив, относительно которого он был вызван. Обратите внимание, что методы splice() и slice() имеют очень похожие имена, но выполняют совершенно разные операции.

Метод splice() может удалять элементы из массива, вставлять новые элементы или выполнять обе операции одновременно. Элементы массива при необходимости смещаются, чтобы после вставки или удаления образовывалась непрерывная последовательность.

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

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

Var arr = ; arr.splice(4); // Вернет , arr = arr.splice(1,2); // Вернет , arr = arr.splice(1,1); // Вернет ; arr = arr = ; arr.splice(2,0,»a»,»b»); // Вернет ; arr =

Методы push() и pop()

Методы push() и pop() позволяют работать с массивами как со стеками. Метод push() добавляет один или несколько новых элементов в конец массива и возвращает его новую длину. Метод pop() выполняет обратную операцию — удаляет последний элемент массива, уменьшает длину массива и возвращает удаленное им значение. Обратите внимание, что оба эти метода изменяют исходный массив, а не создают его модифицированную копию.

Методы unshift() и shift()

Методы unshift() и shift() ведут себя почти так же, как push() и pop(), за исключением того, что они вставляют и удаляют элементы в начале массива, а не в конце. Метод unshift() смещает существующие элементы в сторону больших индексов для освобождения места, добавляет элемент или элементы в начало массива и возвращает новую длину массива. Метод shift() удаляет и возвращает первый элемент массива, смещая все последующие элементы на одну позицию вниз, чтобы занять место, освободившееся в начале массива.

php str_split Преобразование строки в массив символов

массив символов php (6)

Вы можете использовать функцию str_split ():

Если вы хотите разделить строку на значения массива разных сумм, вы можете указать второй параметр:

Вышеизложенное разделит вашу строку на массив в кусках двух.

Как я могу преобразовать PHP:

в массив, который:

Не знаю, знаете ли вы об этом уже, но вам может не понадобиться ничего (в зависимости от того, что вы пытаетесь сделать).

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

Вы можете использовать str_split()

Вы захотите использовать str_split ().

Существует также необязательный параметр функции str_split для разделения на куски символов x.

С помощью функции str_split вы сделаете это.

Str_split — Преобразует строку в массив

Иногда на собеседованиях я задаю такую задачку:

Дана строка текста. Нужно сделать заглавной первую букву каждого слова в тексте. На любые хитрые вопросы «а есть ли в строке знаки препинания» ответ — выбирайте самый простой случай для обработки.

Решить её можно достаточно множеством способов. Чем больше называет человек — тем лучше. К ним относятся:

  1. Посимвольный перебор строки. Эта задачка может быть решена двумя способами. Один из которых связан с использованием конечных автоматов, которым будет посвящён отдельный курс впереди.
  2. Регулярные выражения. Про них также есть отдельный курс.
  3. Через преобразование в массив. Этот способ тоже распадается на два. Одно решение через функции высших порядков мы рассмотрим в следующих курсах, а пока исследуем решение через цикл.

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

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

преобразование строки в массив строк в java

У меня есть string=»name»; Я хочу преобразовать в массив строк. Как мне это сделать? Есть ли встроенная функция java? Вручную я могу это сделать, но я ищу встроенную функцию java.

Мне нужен массив, где каждый символ строки будет строкой. например, char ‘ n ‘теперь будет строкой «n», хранящейся в массиве.

15 ответов

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

избавление от пустой 1-й записи остается в качестве упражнения для читателя: -)

Примечание: в Java 8, пустой первый элемент больше не включается.

вторая строка выделяет строковый массив длиной 1. Обратите внимание, что вам не нужно указывать длину самостоятельно, например:

вместо этого длина определяется количеством элементов в инициализаторе. Используя

создает массив длиной 3.

предполагая, что вам действительно нужен массив односимвольных строк (а не char[] или Character[] )

1. Использование регулярного выражения:

нулевая ширина отрицательного lookahead предотвращает соответствие шаблона в начале ввода, так что вы не получите ведущую пустую строку.

Я думаю, что в этом просто нет необходимости, так как это не будет проще, чем

конечно, если вы настаиваете, вы можете написать:

[редактирование] Если вы хотите однобуквенные строки, вы можете использовать:

к сожалению, s[0] будет пустым, но после этого последуют буквы n,a,m,e. Если это проблема, вы можете использовать, например, System.arrayCopy, чтобы избавиться от первой записи массива.

в java 8 есть метод, с помощью которого вы можете сделать это: toCharArray ():

это приводит к следующему спектру:

string array = массив символов ?

или у вас есть строка с несколькими словами, каждый из которых должен быть элементом массива ?

String[] array = yourString.split(wordSeparator);

преобразовать его в тип Char ?

просто использовать .метод tocharArray () в java

Это должно работать просто отлично в JAVA 8

как уже упоминалось, вы можете легко преобразовать исходную строку «name» в массив символов:

чтобы продолжить этот ход мыслей, вы можете преобразовать массив символов в массив строк:

в этот момент ваш stringArray будет заполнен исходными значениями из вашей исходной строки «name». Например, теперь вызываем

вернет значение » n » (в виде строки) в этот случай.

разделять пустой строкой строку.split () возвращает массив одиночных элементов, содержащий пустую строку. В большинстве случаев вы, вероятно, предпочтете получить пустой массив или null, если вы передали null, что именно то, что вы получаете с org.апаш.палата общин.lang3.StringUtils.split (str).

другой вариант-google guava сплиттер.split () и сплиттер.splitToList () что вернуть итератор и список соответственно. В отличие от версии Apache Splitter будет бросать NPE на null :

Если вам нужен список, а не итератор, используйте сплиттер.splitToList ().

метод String.split будет генерировать пустой 1-й, вы должны удалить его из массива. Это скучно.

вы могли бы использовать string.chars().mapToObj(e -> new String(new char[] )); , хотя это довольно долго и работает только с java 8. Вот еще несколько методов:

string.split(«»); (Has an extra whitespace character at the beginning of the array if used before Java 8) string.split(«|»); string.split(«(?!^)»); Arrays.toString(string.toCharArray()).substring(1, string.length() * 3 + 1).split(«, «);

последний просто излишне долго, это просто для удовольствия!

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

это делает массив слов, разделяя строку на каждое помещение:

это создает следующий массив:

протестировано в Java 8

здесь есть преобразование простой строки в строковый массив с помощью метода split.

String. Split Метод

Определение

Возвращает строковый массив, содержащий подстроки данного экземпляра, разделенные элементами заданной строки или массива знаков Юникода. Returns a string array that contains the substrings in this instance that are delimited by elements of a specified string or Unicode character array.

Перегрузки

Разбивает строку на максимальное число подстрок в зависимости от символов в массиве. Splits a string into a maximum number of substrings based on the characters in an array.

Разделяет строку на максимальное количество подстрок в соответствии с указанным символом-разделителем. Splits a string into a maximum number substrings based on the provided character separator.

Разбивает строку на максимальное число подстрок в зависимости от строк в массиве. Splits a string into a maximum number of substrings based on the strings in an array. Можно указать, включают ли подстроки пустые элементы массива. You can specify whether the substrings include empty array elements.

Разбивает строку на подстроки в зависимости от строк в массиве. Splits a string into substrings based on the strings in an array. Можно указать, включают ли подстроки пустые элементы массива. You can specify whether the substrings include empty array elements.

Разделяет строку на максимальное количество подстрок в соответствии с указанной строкой-разделителем. Splits a string into a maximum number of substrings based on the provided string separator.

Разбивает строку на подстроки в зависимости от символов в массиве. Splits a string into substrings based on the characters in an array. Можно указать, включают ли подстроки пустые элементы массива. You can specify whether the substrings include empty array elements.

Разбивает строку на максимальное число подстрок в зависимости от символов в массиве. Splits a string into a maximum number of substrings based on the characters in an array. Можно также указать максимальное число возвращаемых подстрок. You also specify the maximum number of substrings to return.

Разделяет строку на подстроки в соответствии с указанным символом-разделителем. Splits a string into substrings based on the provided character separator.

Разделяет строку на подстроки в соответствии с указанной строкой-разделителем. Splits a string into substrings that are based on the provided string separator.

Разделяет строку на подстроки в зависимости от символов в массиве разделителей. Splits a string into substrings that are based on the characters in the separator array.

Комментарии

Split используется для разбиения строки с разделителями на подстроки. Split is used to break a delimited string into substrings. Можно использовать либо массив символов, чтобы указать ноль, один или несколько символов разделителей (метод Split(Char[])), либо можно использовать массив символов для указания нулевой, одной или нескольких строк разделителей. You can use either a character array to specify zero, one, or multiple delimiting characters (the Split(Char[]) method), or you can use a character array to specify zero, one, or multiple delimiting strings. Перегрузки метода Split позволяют ограничить количество подстрок, возвращаемых методом (метод Split(Char[], Int32)), для определения того, включены ли пустые строки в возвращаемые подстроки (методы Split(Char[], StringSplitOptions) и Split(String[], StringSplitOptions) или для обоих методов (Split(Char[], Int32, StringSplitOptions) и Split(String[], Int32, StringSplitOptions) методов). Overloads of the Split method allow you to limit the number of substrings returned by the method (the Split(Char[], Int32) method), to determine whether empty strings are included in the returned substrings (the Split(Char[], StringSplitOptions) and Split(String[], StringSplitOptions) methods, or to do both (the Split(Char[], Int32, StringSplitOptions) and Split(String[], Int32, StringSplitOptions) methods).

Примеры C# в этой статье выполняются во встроенном средстве выполнения кода и на площадке Try.NET. The C# examples in this article run in the Try.NET inline code runner and playground. Нажмите на кнопку Выполнить, чтобы выполнить пример в интерактивном окне. Select the Run button to run an example in an interactive window. После выполнения кода вы можете изменить его и выполнить измененный код, снова нажав на кнопку Выполнить. Once you execute the code, you can modify it and run the modified code by selecting Run again. Либо в интерактивном окне выполняется измененный код, либо, если компиляция завершается с ошибкой, в интерактивном окне отображаются все сообщения об ошибках компилятора C#. The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages.

Альтернативы String. Split Alternatives to String.Split

Метод Split не всегда является лучшим способом разбивать строку с разделителями на подстроки. The Split method is not always the best way to break a delimited string into substrings. Если вы не хотите извлекать все подстроки из строки с разделителями или хотите проанализировать строку на основе шаблона вместо набора символов-разделителей, рассмотрим следующие варианты. If you don’t want to extract all of the substrings of a delimited string, or if you want to parse a string based on a pattern instead of a set of delimiter characters, consider the following alternatives.

Регулярные выражения Regular expressions

Если строки соответствуют фиксированному шаблону, можно использовать регулярное выражение для извлечения и обработки их элементов. If your strings conform to a fixed pattern, you can use a regular expression to extract and handle their elements. Например, если строки имеютформу «номер операнда ** числа», можно использовать регулярное выражение для извлечения и обработки элементов строки. For example, if strings take the form «number operand number» you can use a regular expression to extract and handle the string’s elements. Ниже приведен пример: Here’s an example:

Шаблон регулярного выражения (\d+)\s+([-+*/])\s+(\d+) определяется следующим образом: The regular expression pattern (\d+)\s+([-+*/])\s+(\d+) is defined like this:

Шаблон Pattern Описание Description
(\d+) Совпадение с одной или несколькими десятичными цифрами. Match one or more decimal digits. Это первая группа записи. This is the first capturing group.
\s+ Совпадение с одним или несколькими символами пробела. Match one or more white-space characters.
([-+*/]) Совпадение со знаком арифметического оператора (+,-, * или/). Match an arithmetic operator sign (+, -, *, or /). Это вторая группа записи. This is the second capturing group.
\s+ Совпадение с одним или несколькими символами пробела. Match one or more white-space characters.
(\d+) Совпадение с одной или несколькими десятичными цифрами. Match one or more decimal digits. Это третья группа записи. This is the third capturing group.

Можно также использовать регулярное выражение для извлечения подстрок из строки на основе шаблона, а не фиксированного набора символов. You can also use a regular expression to extract substrings from a string based on a pattern rather than a fixed set of characters. Это распространенный сценарий, когда происходит одно из следующих условий: This is a common scenario when either of these conditions occurs:

Один или несколько символов-разделителей не всегда являются разделителями в экземпляре String. One or more of the delimiter characters does not always serve as a delimiter in the String instance.

Последовательность и количество символов-разделителей являются переменными или неизвестными. The sequence and number of delimiter characters is variable or unknown.

Например, метод Split не может быть использован для разбиения следующей строки, поскольку число \n (в C#) или vbCrLf (в Visual Basic) является переменной и не всегда используется в качестве разделителей. For example, the Split method cannot be used to split the following string, because the number of \n (in C#) or vbCrLf (in Visual Basic) characters is variable, and they don’t always serve as delimiters.

Регулярное выражение может легко разделить эту строку, как показано в следующем примере. A regular expression can split this string easily, as the following example shows.

Шаблон регулярного выражения \[([^\[\]]+)\] определяется следующим образом: The regular expression pattern \[([^\[\]]+)\] is defined like this:

Шаблон Pattern Описание Description
\[ Совпадение с открывающей скобкой. Match an opening bracket.
([^\[\]]+) Совпадение с любым символом, который не является открывающей или закрывающей круглой скобкой один или несколько раз. Match any character that is not an opening or a closing bracket one or more times. Это первая группа записи. This is the first capturing group.
\] Совпадение с закрывающей скобкой. Match a closing bracket.

Метод Regex.Split почти идентичен String.Split, за исключением того, что он разделяет строку на основе шаблона регулярного выражения вместо фиксированной кодировки. The Regex.Split method is almost identical to String.Split, except that it splits a string based on a regular expression pattern instead of a fixed character set. Например, в следующем примере используется метод Regex.Split для разбиения строки, содержащей подстроки, с помощью различных сочетаний дефисов и других символов. For example, the following example uses the Regex.Split method to split a string that contains substrings delimited by various combinations of hyphens and other characters.

Шаблон регулярного выражения \s-\s?[+*]?\s?-\s определяется следующим образом: The regular expression pattern \s-\s?[+*]?\s?-\s is defined like this:

Шаблон Pattern Описание Description
\s- Совпадение с символом пробела, за которым следует дефис. Match a white-space character followed by a hyphen.
\s? Совпадение с нулем или одним символом пробела. Match zero or one white-space character.
[+*]? Совпадение с нулем или одним вхождением символа + или *. Match zero or one occurrence of either the + or * character.
\s? Совпадение с нулем или одним символом пробела. Match zero or one white-space character.
-\s Совпадение с дефисом, за которым следует пробельный символ. Match a hyphen followed by a white-space character.

Методы поиска и метод substring Search methods and the Substring method

Если вы не заинтересованы во всех подстроках в строке, то можете использовать один из методов сравнения строк, возвращающих индекс, с которого начинается сопоставление. If you aren’t interested in all of the substrings in a string, you might prefer to work with one of the string comparison methods that returns the index at which the match begins. Затем можно вызвать метод Substring, чтобы извлечь нужную подстроку. You can then call the Substring method to extract the substring that you want. Ниже перечислены методы сравнения строк. The string comparison methods include:

IndexOf, возвращающий Отсчитываемый от нуля индекс первого вхождения символа или строки в экземпляре строки. IndexOf, which returns the zero-based index of the first occurrence of a character or string in a string instance.

IndexOfAny, возвращающий Отсчитываемый от нуля индекс в текущем экземпляре строки первого вхождения любого символа в массиве символов. IndexOfAny, which returns the zero-based index in the current string instance of the first occurrence of any character in a character array.

LastIndexOf, возвращающий Отсчитываемый от нуля индекс последнего вхождения символа или строки в экземпляре строки. LastIndexOf, which returns the zero-based index of the last occurrence of a character or string in a string instance.

LastIndexOfAny, возвращающий Отсчитываемый от нуля индекс в текущем экземпляре строки последнего вхождения любого символа в массиве символов. LastIndexOfAny, which returns a zero-based index in the current string instance of the last occurrence of any character in a character array.

В следующем примере метод IndexOf используется для поиска точек в строке. The following example uses the IndexOf method to find the periods in a string. Затем он использует метод Substring для возврата полных предложений. It then uses the Substring method to return full sentences.

Split(Char[], Int32, StringSplitOptions)

Разбивает строку на максимальное число подстрок в зависимости от символов в массиве. Splits a string into a maximum number of substrings based on the characters in an array.

Параметры

Массив символов, разделяющий подстроки в данной строке, пустой массив, не содержащий разделителей, или null . A character array that delimits the substrings in this string, an empty array that contains no delimiters, or null .

Максимальное число возвращаемых подстрок. The maximum number of substrings to return.

RemoveEmptyEntries, чтобы исключить пустые элементы из возвращаемого массива; или None для включения пустых элементов в возвращаемый массив. RemoveEmptyEntries to omit empty array elements from the array returned; or None to include empty array elements in the array returned.

Возвраты

Массив, элементы которого содержат подстроки данной строки, разделенные одним или более знаками из separator . An array whose elements contain the substrings in this string that are delimited by one or more characters in separator . Дополнительные сведения см. в разделе «Примечания». For more information, see the Remarks section.

Исключения

count является отрицательным значением. count is negative.

options не является одним из значений StringSplitOptions. options is not one of the StringSplitOptions values.

Примеры

В следующем примере используется перечисление StringSplitOptions для включения или исключения подстрок, созданных методом Split. The following example uses the StringSplitOptions enumeration to include or exclude substrings generated by the Split method.

Комментарии

Символы разделителей не включаются в элементы возвращаемого массива. Delimiter characters are not included in the elements of the returned array.

Если этот экземпляр не содержит символов в separator или параметр count равен 1, то возвращаемый массив состоит из одного элемента, содержащего этот экземпляр. If this instance does not contain any of the characters in separator , or the count parameter is 1, the returned array consists of a single element that contains this instance. Если параметр separator имеет значение null или не содержит символов, то символы пробела считаются разделителями. If the separator parameter is null or contains no characters, white-space characters are assumed to be the delimiters. Символы пробела определяются стандартом Юникода и возвращают true , если они передаются в метод Char.IsWhiteSpace. White-space characters are defined by the Unicode standard and return true if they are passed to the Char.IsWhiteSpace method. Однако если параметр separator в вызове этой перегруженной версии метода равен null , разрешение перегрузки компилятора завершается ошибкой. However, if the separator parameter in the call to this method overload is null , compiler overload resolution fails. Чтобы однозначно определить вызываемый метод, код должен указывать тип значения NULL. To unambiguously identify the called method, your code must indicate the type of the null. В следующем примере показано несколько способов однозначного определения этой перегрузки. The following example shows several ways to unambiguously identify this overload.

Если параметр count равен нулю или параметр options имеет значение RemoveEmptyEntries, а длина этого экземпляра равна нулю, возвращается пустой массив. If the count parameter is zero, or the options parameter is RemoveEmptyEntries and the length of this instance is zero, an empty array is returned.

Каждый элемент separator определяет отдельный разделитель. Each element of separator defines a separate delimiter character. Если параметр options имеет значение None, а два разделителя являются смежными или разделитель находится в начале или в конце этого экземпляра, соответствующий элемент массива содержит Empty. If the options parameter is None, and two delimiters are adjacent or a delimiter is found at the beginning or end of this instance, the corresponding array element contains Empty.

Если в этом экземпляре содержится более count подстрок, первая подстрока count минус 1 возвращается в первый count минус 1 элемент возвращаемого значения, а остальные символы в этом экземпляре возвращаются в последнем элементе возвращаемого значения. . If there are more than count substrings in this instance, the first count minus 1 substrings are returned in the first count minus 1 elements of the return value, and the remaining characters in this instance are returned in the last element of the return value.

Если count больше числа подстрок, возвращаются доступные подстроки и исключение не создается. If count is greater than the number of substrings, the available substrings are returned and no exception is thrown.

Особенности производительности Performance Considerations

Методы Split выделяют память для возвращаемого объекта массива и объект String для каждого элемента массива. The Split methods allocate memory for the returned array object and a String object for each array element. Если приложению требуется оптимальная производительность или управление выделением памяти является критически важным в приложении, рассмотрите возможность использования метода IndexOf или IndexOfAny и, при необходимости, метода Compare для нахождение подстроки в строке. If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method, and optionally the Compare method, to locate a substring within a string.

Если строка разделяется с помощью символа разделителя, используйте метод IndexOf или IndexOfAny для нахождение символа разделителя в строке. If you are splitting a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. При разделении строки в разделительной строке используйте метод IndexOf или IndexOfAny для нахождение первого символа строки разделителя. If you are splitting a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. Затем используйте метод Compare, чтобы определить, равны ли символы, указанные после первого символа, оставшимся символам строки разделителя. Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

Кроме того, если для разделения строк в нескольких вызовах методов Split используется один и тот же набор символов, рассмотрите возможность создания одного массива и ссылки на него в каждом вызове метода. In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. Это значительно сокращает дополнительную нагрузку на каждый вызов метода. This significantly reduces the additional overhead of each method call.

Примечания для тех, кто вызывает этот метод


В .NET Framework 3,5 .NET Framework 3.5 и более ранних версиях, если метод Split(Char[]) передается separator , который имеет значение null или не содержит символов, метод использует слегка отличающийся набор символов, чтобы разделить строку, чем метод Trim(Char[]), чтобы обрезать строку. In the .NET Framework 3,5 .NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of characters to split the string than the Trim(Char[]) method does to trim the string. Начиная с .NET Framework 4, оба метода используют идентичный набор пробельных символов Юникода. Starting with the .NET Framework 4, both methods use an identical set of Unicode white-space characters.

Split(Char, Int32, StringSplitOptions)

Разделяет строку на максимальное количество подстрок в соответствии с указанным символом-разделителем. Splits a string into a maximum number substrings based on the provided character separator.

Параметры

Символ, разделяющий подстроки в этом экземпляре. A character that delimits the substrings in this instance.

Максимальное количество элементов в массиве. The maximum number of elements expected in the array.

Одно из значений перечисления, определяющее, должны ли пустые подстроки исключаться из возвращаемого значения при разделении. One of the enumeration values that determines whether the split operation should omit empty substrings from the return value.

Возвраты

Массив, элементы которого содержат максимум count подстрок из этого экземпляра, разделенных символом separator . An array whose elements contain at most count substrings from this instance that are delimited by separator .

Комментарии

Если строка уже была разбита count -1 раз, но конец строки не был достигнут, последняя строка в возвращенном массиве будет содержать оставшуюся конечную подстроку этого экземпляра без вмешательства пользователя. If the string has already been split count — 1 times, but the end of the string has not been reached, then the last string in the returned array will contain this instance’s remaining trailing substring, untouched.

Split(String[], Int32, StringSplitOptions)

Разбивает строку на максимальное число подстрок в зависимости от строк в массиве. Splits a string into a maximum number of substrings based on the strings in an array. Можно указать, включают ли подстроки пустые элементы массива. You can specify whether the substrings include empty array elements.

Параметры

Массив строк, разделяющих подстроки в данной строке, пустой массив, не содержащий разделителей, или null . A string array that delimits the substrings in this string, an empty array that contains no delimiters, or null .

Максимальное число возвращаемых подстрок. The maximum number of substrings to return.

RemoveEmptyEntries, чтобы исключить пустые элементы из возвращаемого массива; или None для включения пустых элементов в возвращаемый массив. RemoveEmptyEntries to omit empty array elements from the array returned; or None to include empty array elements in the array returned.

Возвраты

Массив, элементы которого содержат подстроки данной строки, разделенные одной или более строками из separator . An array whose elements contain the substrings in this string that are delimited by one or more strings in separator . Дополнительные сведения см. в разделе «Примечания». For more information, see the Remarks section.

Исключения

count является отрицательным значением. count is negative.

options не является одним из значений StringSplitOptions. options is not one of the StringSplitOptions values.

Примеры

В следующем примере используется перечисление StringSplitOptions для включения или исключения подстрок, созданных методом Split. The following example uses the StringSplitOptions enumeration to include or exclude substrings generated by the Split method.

Комментарии

Сведения о возвращаемом значении Return value details

Строки разделителей не включаются в элементы возвращаемого массива. Delimiter strings are not included in the elements of the returned array.

Если этот экземпляр не содержит строк в separator или параметр count равен 1, то возвращаемый массив состоит из одного элемента, содержащего этот экземпляр. If this instance does not contain any of the strings in separator , or the count parameter is 1, the returned array consists of a single element that contains this instance. Если параметр separator имеет значение null или не содержит символов, то символы пробела считаются разделителями. If the separator parameter is null or contains no characters, white-space characters are assumed to be the delimiters. Символы пробела определяются стандартом Юникода и возвращают true , если они передаются в метод Char.IsWhiteSpace. White-space characters are defined by the Unicode standard and return true if they are passed to the Char.IsWhiteSpace method. Однако если параметр separator в вызове этой перегруженной версии метода равен null , разрешение перегрузки компилятора завершается ошибкой. However, if the separator parameter in the call to this method overload is null , compiler overload resolution fails. Чтобы однозначно определить вызываемый метод, код должен указывать тип null . To unambiguously identify the called method, your code must indicate the type of the null . В следующем примере показано несколько способов однозначного определения этой перегрузки. The following example shows several ways to unambiguously identify this overload.

Если параметр count равен нулю или параметр options имеет значение RemoveEmptyEntries, а длина этого экземпляра равна нулю, возвращается пустой массив. If the count parameter is zero, or the options parameter is RemoveEmptyEntries and the length of this instance is zero, an empty array is returned.

Каждый элемент separator определяет отдельный разделитель, состоящий из одного или нескольких символов. Each element of separator defines a separate delimiter that consists of one or more characters. Если параметр options имеет значение None, а два разделителя являются смежными или разделитель находится в начале или в конце этого экземпляра, соответствующий элемент массива содержит Empty. If the options parameter is None, and two delimiters are adjacent or a delimiter is found at the beginning or end of this instance, the corresponding array element contains Empty.

Если в этом экземпляре содержится более count подстрок, первая подстрока count минус 1 возвращается в первый count минус 1 элемент возвращаемого значения, а остальные символы в этом экземпляре возвращаются в последнем элементе возвращаемого значения. . If there are more than count substrings in this instance, the first count minus 1 substrings are returned in the first count minus 1 elements of the return value, and the remaining characters in this instance are returned in the last element of the return value.

Если count больше числа подстрок, возвращаются доступные подстроки и исключение не создается. If count is greater than the number of substrings, the available substrings are returned and no exception is thrown.

Массив разделителя The separator array

Если любой из элементов separator состоит из нескольких символов, вся подстрока считается разделителем. If any of the elements in separator consists of multiple characters, the entire substring is considered a delimiter. Например, если один из элементов в separator равен 10, попытка разделить строку «This10is10a10string». For example, if one of the elements in separator is «10», attempting to split the string «This10is10a10string.» Возвращает этот массив из четырех элементов: <"this", "имеет значение", "a", "строка". returns this four-element array: < "This", "is", "a", "string." >. >.

Сведения о сравнении Comparison details

Метод Split извлекает подстроки из этой строки, разделенные одной или несколькими строками в параметре separator , и возвращает эти подстроки как элементы массива. The Split method extracts the substrings in this string that are delimited by one or more of the strings in the separator parameter, and returns those substrings as elements of an array.

Метод Split ищет разделители, выполняя сравнения с использованием правил сортировки порядковых номеров с учетом регистра. The Split method looks for delimiters by performing comparisons using case-sensitive ordinal sort rules. Дополнительные сведения о сортировке по словам, строкам и порядковым номерам см. в разделе Перечисление System.Globalization.CompareOptions. For more information about word, string, and ordinal sorts, see the System.Globalization.CompareOptions enumeration.

Метод Split игнорирует любой элемент separator со значением null или пустой строкой («»). The Split method ignores any element of separator whose value is null or the empty string («»).

Чтобы избежать неоднозначных результатов, когда строки в separator содержат общие символы, метод Split продолжается с начала до конца значения экземпляра и соответствует первому элементу в separator , который равен разделителю в экземпляре. To avoid ambiguous results when strings in separator have characters in common, the Split method proceeds from the beginning to the end of the value of the instance, and matches the first element in separator that is equal to a delimiter in the instance. Порядок, в котором подстроки встречаются в экземпляре, имеет приоритет над порядком элементов в separator . The order in which substrings are encountered in the instance takes precedence over the order of elements in separator .

Например, рассмотрим экземпляр, значение которого равно «abcdef». For example, consider an instance whose value is «abcdef». Если первый элемент в separator был «EF», а второй элемент — «bcde», результатом операции разбиения будет «a» и «f». If the first element in separator was «ef» and the second element was «bcde», the result of the split operation would be «a» and «f». Это обусловлено тем, что обнаружена подстрока в экземпляре «bcde», которая соответствует элементу в separator до обнаружения подстроки «f». This is because the substring in the instance, «bcde», is encountered and matches an element in separator before the substring «f» is encountered.

Однако, если первый элемент separator был «BCD», а второй элемент — «BC», результатом операции разбиения будет «a» и «EF». However, if the first element of separator was «bcd» and the second element was «bc», the result of the split operation would be «a» and «ef». Это происходит потому, что «BCD» — это первый разделитель в separator , соответствующий разделителю в экземпляре. This is because «bcd» is the first delimiter in separator that matches a delimiter in the instance. Если порядок разделителей был реверсирован, так что первый элемент был «BC», а второй элемент — «BCD», результатом будет «a» и «def». If the order of the separators was reversed so the first element was «bc» and the second element was «bcd», the result would be «a» and «def».

Особенности производительности Performance considerations

Методы Split выделяют память для возвращаемого объекта массива и объект String для каждого элемента массива. The Split methods allocate memory for the returned array object and a String object for each array element. Если приложению требуется оптимальная производительность или управление выделением памяти является критически важным в приложении, рассмотрите возможность использования метода IndexOf или IndexOfAny и, при необходимости, метода Compare для нахождение подстроки в строке. If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method, and optionally the Compare method, to locate a substring within a string.

Если строка разделяется с помощью символа разделителя, используйте метод IndexOf или IndexOfAny для нахождение символа разделителя в строке. If you are splitting a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. При разделении строки в разделительной строке используйте метод IndexOf или IndexOfAny для нахождение первого символа строки разделителя. If you are splitting a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. Затем используйте метод Compare, чтобы определить, равны ли символы, указанные после первого символа, оставшимся символам строки разделителя. Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

Кроме того, если для разделения строк в нескольких вызовах методов Split используется один и тот же набор символов, рассмотрите возможность создания одного массива и ссылки на него в каждом вызове метода. In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. Это значительно сокращает дополнительную нагрузку на каждый вызов метода. This significantly reduces the additional overhead of each method call.

Примечания для тех, кто вызывает этот метод

В .NET Framework 3,5 .NET Framework 3.5 и более ранних версиях, если метод Split(Char[]) передается separator , который имеет значение null или не содержит символов, метод использует слегка отличающийся набор символов, чтобы разделить строку, чем метод Trim(Char[]), чтобы обрезать строку. In the .NET Framework 3,5 .NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of characters to split the string than the Trim(Char[]) method does to trim the string. Начиная с .NET Framework 4, оба метода используют идентичный набор пробельных символов Юникода. Starting with the .NET Framework 4, both methods use an identical set of Unicode white-space characters.

Split(String[], StringSplitOptions)

Разбивает строку на подстроки в зависимости от строк в массиве. Splits a string into substrings based on the strings in an array. Можно указать, включают ли подстроки пустые элементы массива. You can specify whether the substrings include empty array elements.

Параметры

Массив строк, разделяющих подстроки в данной строке, пустой массив, не содержащий разделителей, или null . A string array that delimits the substrings in this string, an empty array that contains no delimiters, or null .

RemoveEmptyEntries, чтобы исключить пустые элементы из возвращаемого массива; или None для включения пустых элементов в возвращаемый массив. RemoveEmptyEntries to omit empty array elements from the array returned; or None to include empty array elements in the array returned.

Возвраты

Массив, элементы которого содержат подстроки данной строки, разделенные одной или более строками из separator . An array whose elements contain the substrings in this string that are delimited by one or more strings in separator . Дополнительные сведения см. в разделе «Примечания». For more information, see the Remarks section.

Исключения

options не является одним из значений StringSplitOptions. options is not one of the StringSplitOptions values.

Примеры

В следующем примере показано различие в массивах, возвращаемых путем вызова метода String.Split(String[], StringSplitOptions) строки с параметром options , равным StringSplitOptions.None и StringSplitOptions.RemoveEmptyEntries. The following example illustrates the difference in the arrays returned by calling a string’s String.Split(String[], StringSplitOptions) method with its options parameter equal to StringSplitOptions.None and StringSplitOptions.RemoveEmptyEntries.

В следующем примере определяется массив разделителей, включающих знаки препинания и пробелы. The following example defines an array of separators that include punctuation and white-space characters. Передача этого массива вместе со значением StringSplitOptions.RemoveEmptyEntries в метод Split(String[], StringSplitOptions) возвращает массив, состоящий из отдельных слов из строки. Passing this array along with a value of StringSplitOptions.RemoveEmptyEntries to the Split(String[], StringSplitOptions) method returns an array that consists of the individual words from the string.

Обратите внимание, что метод вызывается с аргументом options , для которого задано значение StringSplitOptions.RemoveEmptyEntries. Note that the method is called with the options argument set to StringSplitOptions.RemoveEmptyEntries. Это предотвращает включение в возвращаемый массив значений String.Empty, представляющих пустые совпадения подстрок, между знаками препинания и пробелами. This prevents the returned array from including String.Empty values that represent empty substring matches between punctuation marks and white-space characters.

Комментарии

Если строка отделяется от известного набора строк, можно использовать метод Split, чтобы разделить его на подстроки. When a string is delimited by a known set of strings, you can use the Split method to separate it into substrings.

Сведения о возвращаемом значении Return value details

Строки разделителей не включаются в элементы возвращаемого массива. Delimiter strings are not included in the elements of the returned array. Например, если массив separator включает строку «—«, а значение текущего экземпляра строки — «AA—BB-CC», метод возвращает массив, содержащий три элемента: «AA», «BB» и «CC». For example, if the separator array includes the string «—» and the value of the current string instance is «aa—bb-cc», the method returns an array that contains three elements: «aa», «bb», and «cc».

Если этот экземпляр не содержит строк в separator , возвращаемый массив состоит из одного элемента, содержащего этот экземпляр. If this instance does not contain any of the strings in separator , the returned array consists of a single element that contains this instance.

Если параметр options имеет значение RemoveEmptyEntries, а длина этого экземпляра равна нулю, метод возвращает пустой массив. If the options parameter is RemoveEmptyEntries and the length of this instance is zero, the method returns an empty array.

Каждый элемент separator определяет отдельный разделитель, состоящий из одного или нескольких символов. Each element of separator defines a separate delimiter that consists of one or more characters. Если аргумент options имеет значение None, а два разделителя являются смежными или в начале или в конце этого экземпляра обнаружен разделитель, то соответствующий элемент массива содержит String.Empty. If the options argument is None, and two delimiters are adjacent or a delimiter is found at the beginning or end of this instance, the corresponding array element contains String.Empty. Например, если separator включает два элемента: «-» и «_», значение экземпляра строки — «-_AA-_», а значение аргумента options — None, метод возвращает массив проверочного со следующими пятью элементами: For example, if separator includes two elements, «-» and «_», the value of the string instance is «-_aa-_», and the value of the options argument is None, the method returns a sting array with the following five elements:

String.Empty, представляющий пустую строку, предшествующую подстроке «-» с индексом 0. String.Empty, which represents the empty string that precedes the «-» substring at index 0.

String.Empty, представляющий пустую строку между подстрокой «-» с индексом 0 и подстрокой «» с индексом 1. String.Empty, which represents the empty string between the «-» substring at index 0 and the «» substring at index 1.

String.Empty, представляющий пустую строку, следующую за подстрокой «» с индексом 4. String.Empty, which represents the empty string that follows the «» substring at index 4.

String.Empty, представляющий пустую строку, следующую за подстрокой «-» в индексе 5. String.Empty, which represents the empty string that follows the «-» substring at index 5.

Массив разделителя The separator array

Если любой из элементов separator состоит из нескольких символов, вся подстрока считается разделителем. If any of the elements in separator consists of multiple characters, the entire substring is considered a delimiter. Например, если один из элементов в separator равен 10, попытка разделить строку «This10is10a10string». For example, if one of the elements in separator is «10», attempting to split the string «This10is10a10string.» Возвращает следующий массив из четырех элементов: <"this", "имеет значение", "a", "строка". returns the following four-element array: < "This", "is", "a", "string." >. >.

Если параметр separator имеет значение null или не содержит символов, то символы пробела считаются разделителями. If the separator parameter is null or contains no characters, white-space characters are assumed to be the delimiters. Символы пробела определяются стандартом Юникода и возвращают true , если они передаются в метод Char.IsWhiteSpace. White-space characters are defined by the Unicode standard and return true if they are passed to the Char.IsWhiteSpace method.

Если параметр separator в вызове этой перегрузки метода имеет значение null , разрешение перегрузки компилятора завершается ошибкой. If the separator parameter in the call to this method overload is null , compiler overload resolution fails. Чтобы однозначно определить вызываемый метод, код должен указывать тип null . To unambiguously identify the called method, your code must indicate the type of the null . В следующем примере показано несколько способов однозначного определения этой перегрузки. The following example shows several ways to unambiguously identify this overload.

Сведения о сравнении Comparison details

Метод Split извлекает подстроки из этой строки, разделенные одной или несколькими строками в параметре separator , и возвращает эти подстроки как элементы массива. The Split method extracts the substrings in this string that are delimited by one or more of the strings in the separator parameter, and returns those substrings as elements of an array.

Метод Split ищет разделители, выполняя сравнения с использованием правил сортировки порядковых номеров с учетом регистра. The Split method looks for delimiters by performing comparisons using case-sensitive ordinal sort rules. Дополнительные сведения о сортировке по словам, строкам и порядковым номерам см. в разделе Перечисление System.Globalization.CompareOptions. For more information about word, string, and ordinal sorts, see the System.Globalization.CompareOptions enumeration.

Метод Split игнорирует любой элемент separator со значением null или пустой строкой («»). The Split method ignores any element of separator whose value is null or the empty string («»).

Чтобы избежать неоднозначных результатов, когда строки в separator содержат общие символы, операция Split продолжается от начала до конца значения экземпляра и соответствует первому элементу в separator , который равен разделителю в экземпляре. To avoid ambiguous results when strings in separator have characters in common, the Split operation proceeds from the beginning to the end of the value of the instance, and matches the first element in separator that is equal to a delimiter in the instance. Порядок, в котором подстроки встречаются в экземпляре, имеет приоритет над порядком элементов в separator . The order in which substrings are encountered in the instance takes precedence over the order of elements in separator .

Например, рассмотрим экземпляр, значение которого равно «abcdef». For example, consider an instance whose value is «abcdef». Если первый элемент в separator был «EF», а второй элемент — «bcde», результатом операции разбиения будет массив строк, содержащий два элемента: «a» и «f». If the first element in separator was «ef» and the second element was «bcde», the result of the split operation would be a string array that contains two elements, «a» and «f». Это обусловлено тем, что обнаружена подстрока в экземпляре «bcde», которая соответствует элементу в separator до обнаружения подстроки «f». This is because the substring in the instance, «bcde», is encountered and matches an element in separator before the substring «f» is encountered.

Однако, если первый элемент separator был «BCD», а второй элемент был «BC», результатом операции разбиения будет массив строк, содержащий два элемента: «a» и «EF». However, if the first element of separator was «bcd» and the second element was «bc», the result of the split operation would be a string array that contains two elements, «a» and «ef». Это происходит потому, что «BCD» — это первый разделитель в separator , соответствующий разделителю в экземпляре. This is because «bcd» is the first delimiter in separator that matches a delimiter in the instance. Если порядок разделителей был реверсирован, так что первый элемент был «BC», а второй — «BCD», результатом будет массив строк, содержащий два элемента: «a» и «def». If the order of the separators was reversed so the first element was «bc» and the second element was «bcd», the result would be a string array that contains two elements, «a» and «def».

Особенности производительности Performance considerations

Методы Split выделяют память для возвращаемого объекта массива и объект String для каждого элемента массива. The Split methods allocate memory for the returned array object and a String object for each array element. Если приложению требуется оптимальная производительность или управление выделением памяти является критически важным в приложении, рассмотрите возможность использования метода IndexOf или IndexOfAny и, при необходимости, метода Compare для нахождение подстроки в строке. If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method, and optionally the Compare method, to locate a substring within a string.

Если строка разделяется с помощью символа разделителя, используйте метод IndexOf или IndexOfAny для нахождение символа разделителя в строке. If you are splitting a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. При разделении строки в разделительной строке используйте метод IndexOf или IndexOfAny для нахождение первого символа строки разделителя. If you are splitting a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. Затем используйте метод Compare, чтобы определить, равны ли символы, указанные после первого символа, оставшимся символам строки разделителя. Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

Кроме того, если для разделения строк в нескольких вызовах методов Split используется один и тот же набор символов, рассмотрите возможность создания одного массива и ссылки на него в каждом вызове метода. In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. Это значительно сокращает дополнительную нагрузку на каждый вызов метода. This significantly reduces the additional overhead of each method call.

Примечания для тех, кто вызывает этот метод

В .NET Framework 3,5 .NET Framework 3.5 и более ранних версиях, если метод Split(Char[]) передается separator , который имеет значение null или не содержит символов, метод использует слегка отличающийся набор символов, чтобы разделить строку, чем метод Trim(Char[]), чтобы обрезать строку. In the .NET Framework 3,5 .NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of characters to split the string than the Trim(Char[]) method does to trim the string. Начиная с .NET Framework 4, оба метода используют идентичный набор пробельных символов Юникода. Starting with the .NET Framework 4, both methods use an identical set of Unicode white-space characters.

Split(String, Int32, StringSplitOptions)

Разделяет строку на максимальное количество подстрок в соответствии с указанной строкой-разделителем. Splits a string into a maximum number of substrings based on the provided string separator.

Параметры

Строка, разделяющая подстроки в этом экземпляре. A string that delimits the substrings in this instance.

Максимальное количество элементов в массиве. The maximum number of elements expected in the array.

Одно из значений перечисления, определяющее, должны ли пустые подстроки исключаться из возвращаемого значения при разделении. One of the enumeration values that determines whether the split operation should omit empty substrings from the return value.

Возвраты

Массив, элементы которого содержат максимум count подстрок из этого экземпляра, разделенных символом separator . An array whose elements contain at most count substrings from this instance that are delimited by separator .

Комментарии

Если строка уже была разбита count -1 раз, но конец строки не был достигнут, последняя строка в возвращенном массиве будет содержать оставшуюся конечную подстроку этого экземпляра без вмешательства пользователя. If the string has already been split count — 1 times, but the end of the string has not been reached, then the last string in the returned array will contain this instance’s remaining trailing substring, untouched.

Split(Char[], StringSplitOptions)

Разбивает строку на подстроки в зависимости от символов в массиве. Splits a string into substrings based on the characters in an array. Можно указать, включают ли подстроки пустые элементы массива. You can specify whether the substrings include empty array elements.

Параметры

Массив символов, разделяющий подстроки в данной строке, пустой массив, не содержащий разделителей, или null . A character array that delimits the substrings in this string, an empty array that contains no delimiters, or null .

RemoveEmptyEntries, чтобы исключить пустые элементы из возвращаемого массива; или None для включения пустых элементов в возвращаемый массив. RemoveEmptyEntries to omit empty array elements from the array returned; or None to include empty array elements in the array returned.

Возвраты

Массив, элементы которого содержат подстроки данной строки, разделенные одним или более знаками из separator . An array whose elements contain the substrings in this string that are delimited by one or more characters in separator . Дополнительные сведения см. в разделе «Примечания». For more information, see the Remarks section.

Исключения

options не является одним из значений StringSplitOptions. options is not one of the StringSplitOptions values.

Примеры

В следующем примере используется перечисление StringSplitOptions для включения или исключения подстрок, созданных методом Split. The following example uses the StringSplitOptions enumeration to include or exclude substrings generated by the Split method.

Комментарии

Сведения о возвращаемом значении Return value details

Знаки-разделители (символы в массиве separator ) не включаются в элементы возвращаемого массива. Delimiter characters (the characters in the separator array) are not included in the elements of the returned array. Например, если массив separator содержит символ «-«, а значение текущего экземпляра строки — «AA-BB-CC», метод возвращает массив, содержащий три элемента: «AA», «BB» и «CC». For example, if the separator array includes the character «-» and the value of the current string instance is «aa-bb-cc», the method returns an array that contains three elements: «aa», «bb», and «cc».

Если этот экземпляр не содержит символов в separator , возвращаемый массив состоит из одного элемента, содержащего этот экземпляр. If this instance does not contain any of the characters in separator , the returned array consists of a single element that contains this instance.

Если параметр options имеет значение RemoveEmptyEntries, а длина этого экземпляра равна нулю, метод возвращает пустой массив. If the options parameter is RemoveEmptyEntries and the length of this instance is zero, the method returns an empty array.

Каждый элемент separator определяет отдельный разделитель, состоящий из одного символа. Each element of separator defines a separate delimiter that consists of a single character. Если аргумент options имеет значение None, а два разделителя являются смежными или в начале или в конце этого экземпляра обнаружен разделитель, то соответствующий элемент массива содержит String.Empty. If the options argument is None, and two delimiters are adjacent or a delimiter is found at the beginning or end of this instance, the corresponding array element contains String.Empty. Например, если separator включает два элемента: «-» и «_», значение экземпляра строки — «-_AA-_», а значение аргумента options — None, метод возвращает массив строк со следующими пятью элементами: For example, if separator includes two elements, «-» and «_», the value of the string instance is «-_aa-_», and the value of the options argument is None, the method returns a string array with the following five elements:

String.Empty, представляющий пустую строку, предшествующую символу «-» с индексом 0. String.Empty, which represents the empty string that precedes the «-» character at index 0.

String.Empty, представляющий пустую строку между символом «-» в индексе 0 и символом «» в индексе 1. String.Empty, which represents the empty string between the «-» character at index 0 and the «» character at index 1.

String.Empty, представляющий пустую строку, следующую за символом «» в индексе 4. String.Empty, which represents the empty string that follows the «» character at index 4.

String.Empty, представляющий пустую строку, которая соответствует символу «-» в индексе 5. String.Empty, which represents the empty string that follows the «-» character at index 5.

Массив разделителя The separator array

Если параметр separator имеет значение null или не содержит символов, то символы пробела считаются разделителями. If the separator parameter is null or contains no characters, white-space characters are assumed to be the delimiters. Символы пробела определяются стандартом Юникода и возвращают true , если они передаются в метод Char.IsWhiteSpace. White-space characters are defined by the Unicode standard and return true if they are passed to the Char.IsWhiteSpace method.

Если параметр separator в вызове этой перегрузки метода имеет значение null , разрешение перегрузки компилятора завершается ошибкой. If the separator parameter in the call to this method overload is null , compiler overload resolution fails. Чтобы однозначно определить вызываемый метод, код должен указывать тип null . To unambiguously identify the called method, your code must indicate the type of the null . В следующем примере показано несколько способов однозначного определения этой перегрузки. The following example shows several ways to unambiguously identify this overload.

Сведения о сравнении Comparison details

Метод Split извлекает подстроки из этой строки, разделенные одним или несколькими символами в параметре separator , и возвращает эти подстроки как элементы массива. The Split method extracts the substrings in this string that are delimited by one or more of the characters in the separator parameter, and returns those substrings as elements of an array.

Метод Split ищет разделители, выполняя сравнения с использованием правил сортировки порядковых номеров с учетом регистра. The Split method looks for delimiters by performing comparisons using case-sensitive ordinal sort rules. Дополнительные сведения о сортировке по словам, строкам и порядковым номерам см. в разделе Перечисление System.Globalization.CompareOptions. For more information about word, string, and ordinal sorts, see the System.Globalization.CompareOptions enumeration.

Особенности производительности Performance Considerations

Методы Split выделяют память для возвращаемого объекта массива и объект String для каждого элемента массива. The Split methods allocate memory for the returned array object and a String object for each array element. Если приложению требуется оптимальная производительность или управление выделением памяти является критически важным в приложении, рассмотрите возможность использования метода IndexOf или IndexOfAny и, при необходимости, метода Compare для нахождение подстроки в строке. If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method, and optionally the Compare method, to locate a substring within a string.

Если строка разделяется с помощью символа разделителя, используйте метод IndexOf или IndexOfAny для нахождение символа разделителя в строке. If you are splitting a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. При разделении строки в разделительной строке используйте метод IndexOf или IndexOfAny для нахождение первого символа строки разделителя. If you are splitting a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. Затем используйте метод Compare, чтобы определить, равны ли символы, указанные после первого символа, оставшимся символам строки разделителя. Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

Кроме того, если для разделения строк в нескольких вызовах методов Split используется один и тот же набор символов, рассмотрите возможность создания одного массива и ссылки на него в каждом вызове метода. In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. Это значительно сокращает дополнительную нагрузку на каждый вызов метода. This significantly reduces the additional overhead of each method call.

Примечания для тех, кто вызывает этот метод

В .NET Framework 3,5 .NET Framework 3.5 и более ранних версиях, если метод Split(Char[]) передается separator , который имеет значение null или не содержит символов, метод использует слегка отличающийся набор символов, чтобы разделить строку, чем метод Trim(Char[]), чтобы обрезать строку. In the .NET Framework 3,5 .NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of characters to split the string than the Trim(Char[]) method does to trim the string. Начиная с .NET Framework 4, оба метода используют идентичный набор пробельных символов Юникода. Starting with the .NET Framework 4, both methods use an identical set of Unicode white-space characters.

Split(Char[], Int32)

Разбивает строку на максимальное число подстрок в зависимости от символов в массиве. Splits a string into a maximum number of substrings based on the characters in an array. Можно также указать максимальное число возвращаемых подстрок. You also specify the maximum number of substrings to return.

Параметры

Массив символов, разделяющий подстроки в данной строке, пустой массив, не содержащий разделителей, или null . A character array that delimits the substrings in this string, an empty array that contains no delimiters, or null .

Максимальное число возвращаемых подстрок. The maximum number of substrings to return.

Возвраты

Массив, элементы которого содержат подстроки данного экземпляра, разделенные одним или более знаками из separator . An array whose elements contain the substrings in this instance that are delimited by one or more characters in separator . Дополнительные сведения см. в разделе «Примечания». For more information, see the Remarks section.

Исключения

count является отрицательным значением. count is negative.

Примеры

В следующем примере показано, как count влияет на количество строк, возвращаемых Split. The following example demonstrates how count affects the number of strings returned by Split.

Комментарии

Символы разделителей не включаются в элементы возвращаемого массива. Delimiter characters are not included in the elements of the returned array.

Если этот экземпляр не содержит символов в separator , возвращаемый массив состоит из одного элемента, содержащего этот экземпляр. If this instance does not contain any of the characters in separator , the returned array consists of a single element that contains this instance. Если count равен нулю, возвращается пустой массив. If count is zero, an empty array is returned.

Если параметр separator имеет значение null или не содержит символов, то символы пробела считаются разделителями. If the separator parameter is null or contains no characters, white-space characters are assumed to be the delimiters. Символы пробела определяются стандартом Юникода и возвращают true , если они передаются в метод Char.IsWhiteSpace. White-space characters are defined by the Unicode standard and return true if they are passed to the Char.IsWhiteSpace method.

Каждый элемент separator определяет отдельный разделитель. Each element of separator defines a separate delimiter character. Если два разделителя являются смежными или обнаружен разделитель в начале или в конце этого экземпляра, соответствующий элемент массива содержит Empty. If two delimiters are adjacent, or a delimiter is found at the beginning or end of this instance, the corresponding array element contains Empty.

Если в этом экземпляре содержится более count подстрок, первая подстрока count минус 1 возвращается в первый count минус 1 элемент возвращаемого значения, а остальные символы в этом экземпляре возвращаются в последнем элементе возвращаемого значения. . If there are more than count substrings in this instance, the first count minus 1 substrings are returned in the first count minus 1 elements of the return value, and the remaining characters in this instance are returned in the last element of the return value.

Если count больше числа подстрок, возвращаются доступные подстроки и исключение не создается. If count is greater than the number of substrings, the available substrings are returned and no exception is thrown.

В следующей таблице приведены примеры. The following table provides examples.

Строковое значение String value Separator Separator Count Count Возвращаемый массив Returned array
«42, 12, 19» «42, 12, 19» New char [] <', ', ' '>(C#) new Char[] <',', ' '>(C#)

Char () = <"," c, "" c>(Visual Basic) Char() = <","c, " "c>(Visual Basic)

2 2
«42..12..19» «42..12..19» New char [] <'. '>new Char[] <'.'>(C#) (C#)

Char () = <"." c>(Visual Basic) Char() = <"."c>(Visual Basic)

4 4
Банан «Banana» New char [] <'. '>new Char[] <'.'>(C#) (C#)

Char () = <"." c>(Visual Basic) Char() = <"."c>(Visual Basic)

2 2
«Дарб\нсмарба» (C#) «Darb\nSmarba» (C#)

«Дарб» & Вблф & «Смарба» (Visual Basic) «Darb» & vbLf & «Smarba» (Visual Basic)

New char [] <> (C#) new Char[] <> (C#)

Char () = <> (Visual Basic) Char() = <> (Visual Basic)

1 1 <"Дарб\нсмарба">(C#) <"Darb\nSmarba">(C#)

«Дарб» & Вблф & «Смарба» (Visual Basic) «Darb» & vbLf & «Smarba» (Visual Basic)

«Дарб\нсмарба» (C#) «Darb\nSmarba» (C#)

«Дарб» & Вблф & «Смарба» (Visual Basic) «Darb» & vbLf & «Smarba» (Visual Basic)

New char [] null (C#) new Char[] null (C#)

Char () = Nothing Char() = Nothing

2 2
«Дарб\нсмарба» (C#) «Darb\nSmarba» (C#)

«Дарб» & Вблф & «Смарба» (Visual Basic) «Darb» & vbLf & «Smarba» (Visual Basic)

New char [] null (C#) new Char[] null (C#)

Char () = Nothing Char() = Nothing

100 100

Особенности производительности Performance Considerations

Методы Split выделяют память для возвращаемого объекта массива и объект String для каждого элемента массива. The Split methods allocate memory for the returned array object and a String object for each array element. Если приложению требуется оптимальная производительность или управление выделением памяти является критически важным в приложении, рассмотрите возможность использования метода IndexOf или IndexOfAny и, при необходимости, метода Compare для нахождение подстроки в строке. If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method, and optionally the Compare method, to locate a substring within a string.

Если строка разделяется с помощью символа разделителя, используйте метод IndexOf или IndexOfAny для нахождение символа разделителя в строке. If you are splitting a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. При разделении строки в разделительной строке используйте метод IndexOf или IndexOfAny для нахождение первого символа строки разделителя. If you are splitting a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. Затем используйте метод Compare, чтобы определить, равны ли символы, указанные после первого символа, оставшимся символам строки разделителя. Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

Кроме того, если для разделения строк в нескольких вызовах методов Split используется один и тот же набор символов, рассмотрите возможность создания одного массива и ссылки на него в каждом вызове метода. In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. Это значительно сокращает дополнительную нагрузку на каждый вызов метода. This significantly reduces the additional overhead of each method call.

Примечания для тех, кто вызывает этот метод

В .NET Framework 3,5 .NET Framework 3.5 и более ранних версиях, если метод Split(Char[]) передается separator , который имеет значение null или не содержит символов, метод использует слегка отличающийся набор символов, чтобы разделить строку, чем метод Trim(Char[]), чтобы обрезать строку. In the .NET Framework 3,5 .NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of characters to split the string than the Trim(Char[]) method does to trim the string. Начиная с .NET Framework 4, оба метода используют идентичный набор пробельных символов Юникода. Starting with the .NET Framework 4, both methods use an identical set of Unicode white-space characters.

Дополнительно

Split(Char, StringSplitOptions)

Разделяет строку на подстроки в соответствии с указанным символом-разделителем. Splits a string into substrings based on the provided character separator.

Параметры

Символ, разделяющий подстроки в этой строке. A character that delimits the substrings in this string.

Одно из значений перечисления, определяющее, должны ли пустые подстроки исключаться из возвращаемого значения при разделении. One of the enumeration values that determines whether the split operation should omit empty substrings from the return value.

Возвраты

Массив, элементы которого содержат подстроки из этого экземпляра, разделенные символом separator . An array whose elements contain the substrings from this instance that are delimited by separator .

Split(String, StringSplitOptions)

Разделяет строку на подстроки в соответствии с указанной строкой-разделителем. Splits a string into substrings that are based on the provided string separator.

Параметры

Строка, разделяющая подстроки в этой строке. A string that delimits the substrings in this string.

Одно из значений перечисления, определяющее, должны ли пустые подстроки исключаться из возвращаемого значения при разделении. One of the enumeration values that determines whether the split operation should omit empty substrings from the return value.

Возвраты

Массив, элементы которого содержат подстроки из этого экземпляра, разделенные символом separator . An array whose elements contain the substrings from this instance that are delimited by separator .

Split(Char[])

Разделяет строку на подстроки в зависимости от символов в массиве разделителей. Splits a string into substrings that are based on the characters in the separator array.

Параметры

Массив символов, разделяющий подстроки в данной строке, пустой массив, не содержащий разделителей, или null . A character array that delimits the substrings in this string, an empty array that contains no delimiters, or null .

Возвраты

Массив, элементы которого содержат подстроки из этого экземпляра, разделенные символами из separator . An array whose elements contain the substrings from this instance that are delimited by one or more characters in separator . Дополнительные сведения см. в разделе «Примечания». For more information, see the Remarks section.

Примеры

В следующем примере показано, как извлечь отдельные слова из блока текста, рассматривая пробелы и знаки пунктуации в качестве разделителей. The following example demonstrates how to extract individual words from a block of text by treating white space and punctuation marks as delimiters. Массив символов, передаваемый параметру separator метода String.Split(Char[]), состоит из символа пробела и символа табуляции вместе с некоторыми общими символами пунктуации. The character array passed to the separator parameter of the String.Split(Char[]) method consists of a space character and a tab character, together with some common punctuation symbols.

Комментарии

Если строка отделяется от известного набора символов, можно использовать метод Split(Char[]), чтобы разделить его на подстроки. When a string is delimited by a known set of characters, you can use the Split(Char[]) method to separate it into substrings.

Сведения о возвращаемом значении Return value details

Символы разделителей не включаются в элементы возвращаемого массива. Delimiter characters are not included in the elements of the returned array. Например, если массив разделителя содержит символ «-«, а значение текущего экземпляра строки — «AA-BB-CC», метод возвращает массив, содержащий три элемента: «AA», «BB» и «CC». For example, if the separator array includes the character «-» and the value of the current string instance is «aa-bb-cc», the method returns an array that contains three elements: «aa», «bb», and «cc».

Если этот экземпляр не содержит символов в separator , возвращаемый массив состоит из одного элемента, содержащего этот экземпляр. If this instance does not contain any of the characters in separator , the returned array consists of a single element that contains this instance.

Каждый элемент separator определяет отдельный разделитель. Each element of separator defines a separate delimiter character. Если два разделителя являются смежными или обнаружен разделитель в начале или в конце этого экземпляра, соответствующий элемент в возвращаемом массиве содержит Empty. If two delimiters are adjacent, or a delimiter is found at the beginning or end of this instance, the corresponding element in the returned array contains Empty. Далее приводятся некоторые примеры. Here are some examples:

Строковое значение String value Separator Separator Возвращаемый массив Returned array
«42, 12, 19» «42, 12, 19» New char [] <', ', ' '>(C#) new Char[] <',', ' '>(C#)

Char () = <"," c, "" c>) (Visual Basic) Char() = <","c, " "c>) (Visual Basic)

«42..12..19» «42..12..19» New char [] <'. '>new Char[] <'.'>(C#) (C#)

Char () = <"." c>(Visual Basic) Char() = <"."c>(Visual Basic)

Банан «Banana» New char [] <'. '>new Char[] <'.'>(C#) (C#)

Char () = <"." c>(Visual Basic) Char() = <"."c>(Visual Basic)

«Дарб\нсмарба» (C#) «Darb\nSmarba» (C#)

«Дарб» & Вблф & «Смарба» (Visual Basic) «Darb» & vbLf & «Smarba» (Visual Basic)

New char [] <> (C#) new Char[] <> (C#)

Char () = <> (Visual Basic) Char() = <> (Visual Basic)

«Дарб\нсмарба» (C#) «Darb\nSmarba» (C#)

«Дарб» & Вблф & «Смарба» (Visual Basic) «Darb» & vbLf & «Smarba» (Visual Basic)

null (C#) null (C#)

Nothing (Visual Basic) Nothing (Visual Basic)

Массив разделителя The separator array

Каждый элемент разделителя определяет отдельный разделитель, состоящий из одного символа. Each element of separator defines a separate delimiter that consists of a single character. Если аргумент separator имеет null или не содержит символов, метод рассматривает пробельные символы как разделители. If the separator argument is null or contains no characters, the method treats white-space characters as the delimiters. Пробельные символы определяются стандартом Unicode. они возвращают true , если они передаются в метод Char.IsWhiteSpace. White-space characters are defined by the Unicode standard; they return true if they are passed to the Char.IsWhiteSpace method.

String. Split (char []) и разрешение перегрузки компилятора String.Split(Char[]) and compiler overload resolution

Хотя один параметр для этой перегрузки String.Split является массивом символов, его можно вызвать с помощью одного символа, как показано в следующем примере. Although the single parameter for this overload of String.Split is a character array, you can call it with a single character, as the following example shows.

Поскольку параметр separator дополнен атрибутом ParamArrayAttribute, компиляторы будут интерпретировать один символ как одноэлементный массив символов. Because the separator parameter is decorated with the ParamArrayAttribute attribute, compilers will interpret a single character as a single-element character array. Это не так для других перегрузок String.Split, которые включают параметр separator ; необходимо явно передать перегрузку массива символов в качестве аргумента separator . This is not the case for other String.Split overloads that include a separator parameter; you must explicitly pass these overloads a character array as the separator argument.

Сведения о сравнении Comparison details

Метод Split(Char[]) извлекает подстроки из этой строки, разделенные одним или несколькими символами в массиве separator , и возвращает эти подстроки как элементы массива. The Split(Char[]) method extracts the substrings in this string that are delimited by one or more of the characters in the separator array, and returns those substrings as elements of an array.

Метод Split(Char[]) ищет разделители, выполняя сравнения с использованием правил сортировки порядковых номеров с учетом регистра. The Split(Char[]) method looks for delimiters by performing comparisons using case-sensitive ordinal sort rules. Дополнительные сведения о сортировке по словам, строкам и порядковым номерам см. в разделе Перечисление System.Globalization.CompareOptions. For more information about word, string, and ordinal sorts, see the System.Globalization.CompareOptions enumeration.

Особенности производительности Performance Considerations

Методы Split выделяют память для возвращаемого объекта массива и объект String для каждого элемента массива. The Split methods allocate memory for the returned array object and a String object for each array element. Если для приложения требуется оптимальная производительность или управление выделением памяти является критически важным в приложении, рассмотрите возможность использования метода IndexOf или IndexOfAny. If your application requires optimal performance or if managing memory allocation is critical in your application, consider using the IndexOf or IndexOfAny method. Кроме того, можно использовать метод Compare для нахождение подстроки в строке. You also have the option of using the Compare method to locate a substring within a string.

Чтобы разделить строку с помощью символа разделителя, используйте метод IndexOf или IndexOfAny для нахождение символа разделителя в строке. To split a string at a separator character, use the IndexOf or IndexOfAny method to locate a separator character in the string. Чтобы разделить строку в строке-разделителе, используйте метод IndexOf или IndexOfAny для нахождение первого символа строки разделителя. To split a string at a separator string, use the IndexOf or IndexOfAny method to locate the first character of the separator string. Затем используйте метод Compare, чтобы определить, равны ли символы, указанные после первого символа, оставшимся символам строки разделителя. Then use the Compare method to determine whether the characters after that first character are equal to the remaining characters of the separator string.

Кроме того, если для разделения строк в нескольких вызовах методов Split используется один и тот же набор символов, рассмотрите возможность создания одного массива и ссылки на него в каждом вызове метода. In addition, if the same set of characters is used to split strings in multiple Split method calls, consider creating a single array and referencing it in each method call. Это значительно сокращает дополнительную нагрузку на каждый вызов метода. This significantly reduces the additional overhead of each method call.

Примечания для тех, кто вызывает этот метод

В .NET Framework 3,5 .NET Framework 3.5 и более ранних версиях, если метод Split(Char[]) передается separator , который имеет значение null или не содержит символов, метод использует слегка отличающийся набор символов, чтобы разделить строку, чем метод Trim(Char[]), чтобы обрезать строку. In the .NET Framework 3,5 .NET Framework 3.5 and earlier versions, if the Split(Char[]) method is passed a separator that is null or contains no characters, the method uses a slightly different set of characters to split the string than the Trim(Char[]) method does to trim the string. Начиная с .NET Framework 4, оба метода используют идентичный набор пробельных символов Юникода. Starting with the .NET Framework 4, both methods use an identical set of Unicode white-space characters.

Str_split — Преобразует строку в массив

982033 просмотра

11 ответа

102062 Репутация автора

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

Есть ли что-нибудь встроенное для этого?

Например, у меня есть эта строка

теперь я хочу разделить это запятой, а затем сохранить в объекте Array.

Ответы (11)

1122 плюса

67315 Репутация автора

Ссылка MDN , в основном полезная для возможного неожиданного поведения limit параметра. (Подсказка: «a,b,c».split(«,», 2) выходит [«a», «b»] , нет [«a», «b,c»] .)

Автор: Matchu Размещён: 18.05.2010 02:24

25 плюса

1183 Репутация автора

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

125 плюса

2068 Репутация автора

Остерегайтесь, если вы стремитесь к целым числам, таким как 1,2,3,4,5. Если вы намерены использовать элементы вашего массива как целые числа, а не как строки после разбиения строки, рассмотрите возможность их преобразования в такие.

добавив такой цикл

вернет массив, содержащий целые числа, а не строки.

Автор: pop Размещён: 14.12.2010 03:58

31 плюса

311 Репутация автора

Hmm split опасен imho, так как строка всегда может содержать запятую, соблюдайте следующее:

Так как бы вы это помешали? и какой результат вы хотите получить? массив с:

даже если вы избежите запятой, у вас будут проблемы.

Не стесняйтесь использовать / редактировать это :)

Автор: Justme Размещён: 29.08.2012 03:12

10 плюса

4679 Репутация автора

Передайте строку с разделителями-запятыми в эту функцию, и она вернет массив, а если строка с разделителями-запятыми не найдена, то будет возвращен ноль

Автор: BJ Patel Размещён: 29.11.2012 09:51

5 плюса

2777 Репутация автора

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

Вот функция, которая преобразует строку в массив, даже если в списке есть только один элемент (без символа разделителя):

Используйте это так:

Я создал эту функцию, потому что split выдает ошибку, если в строке нет символа-разделителя (только один элемент)

Автор: Kabb5 Размещён: 22.10.2013 04:23

14 плюса

506 Репутация автора

Обратите внимание, что следующее:

4 плюса

1127 Репутация автора

У меня была похожая проблема, но более сложная, поскольку мне нужно было преобразовать CSV в массив массивов (каждая строка — это один элемент массива, внутри которого есть массив элементов, разделенных запятой).

Самым простым решением (и, я уверен, более безопасным) было использование PapaParse ( http://papaparse.com/ ), который имеет опцию «без заголовка», которая превращает CSV в массив массивов, плюс он автоматически обнаружил « как мой разделитель

Плюс, это зарегистрировано в беседке, поэтому мне оставалось только:

а затем использовать его в моем коде следующим образом:

Мне действительно это понравилось.

6 плюса

1292 Репутация автора

Функция возврата

его принимают строку и объектные строки

Автор: Andi AR Размещён: 18.09.2015 04:48

2 плюса

525 Репутация автора

хорошее решение для этого

1 плюс

315 Репутация автора

и если вы хотите преобразовать следующее в:

Илон Маск рекомендует:  Урок 3. Наполняем страницу текстом
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL