Как разбить строку на символы
Как разбить строку на символы?
Мне нужно работать с каждой буквой по отдельности. И для этого нужно разбить строку на отдельные.
Как разбить строку на символы?
Кто подскажет начинающему Как разбить строку на символы, имеется ввиду разбить слова на буквы
Разбить строку на символы
Вот собственно задание, не знаю как решить, нашел решение такое Sub main() Rows(2).ClearContents.
Разбить строку на символы в ASP.
Есть запись в Access типа текст (8 символов: 11223344). Как можно ее разбить на отдельные символы.
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
82 / 82 / 24
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
так ведь символьная строка представляет из себя массив символов, можно сравнить в цикле, наподобие if ( ch[i] == ch[i + 1]) .
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
Doctor_, смотря на то, что вы считаете элементом.
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
Сообщение от LostCoast
так ведь символьная строка представляет из себя массив символов, можно сравнить в цикле, наподобие if ( ch[i] == ch[i + 1]) .
у меня задан
N=800
char text[N]
вожу просто символы, без точек, запятых.. просто строку
как е разбить по элементам чтоб сравнивать?
82 / 82 / 24
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
Doctor_, так она у тебя уже разбита, ты спокойно можешь написать printf(«%s», text[1..N])
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
Doctor_, что вы считаете элементом? Что потом нужно сравнивать?
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
у меня вообще задание: водишь символьную строку, и он выводит уникальные символы в том порядке в котором они были в строке..
например: asaghsijhgs
результат: ij
раньше уже задавал такой вопрос, мне там написали программу, но это было просто жесть.. вообще не чего не понятно, намудренно что ничего понять нельзя..
82 / 82 / 24
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
Doctor_, i и j вводятся с клавы для отображения, или для отображения используется номер элемента?
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
Сообщение от LostCoast
Doctor_, i и j вводятся с клавы для отображения, или для отображения используется номер элемента?
после вода символьной строки с клавиатуры, она обрабатывается и выводи только уникальные символы
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
Ну, первая мысль — при условии непрерывности кодов символов допустимого алфавита создать массив счётчиков для каждого символа. Первый раз пройти, считая символы, второй раз — выводя только те, значение чьего счётчика равно единице.
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
Сообщение от talis
Ну, первая мысль — при условии непрерывности кодов символов допустимого алфавита создать массив счётчиков для каждого символа. Первый раз пройти, считая символы, второй раз — выводя только те, значение чьего счётчика равно единице.
я тоже об этом подумал,
сделать цикл, но я не понимаю как символы между собой сравнивать, как сделать так чтоб он символы сравнивал..
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
1 2 3 4 5 6 7 8
char array[8]; //. if( array[2] == 'h' ) { //. }
Но в вышеописанном алгоритме это не надо
82 / 82 / 24
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#include #include int main() { char ch[800]; int i; printf("Write string:\n"); scanf("%s", &ch); for( i = 0; i strlen(ch); i++) { if (ch[i] == 'i') printf("%c",ch[i]); if (ch[i] == 'j') printf("%c",ch[i]); } return 0; }
вот пример
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
Сообщение от talis
1 2 3 4 5 6 7 8
char array[8]; //. if( array[2] == 'h' ) { //. }
Но в вышеописанном алгоритме это не надо
что-то я вообще не понимаю, как это применять
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
Сообщение от Doctor_
1 2 3 4 5 6
char array[8]; //. if( array[2] == 'h' ) { * *//. }
что-то я вообще не понимаю, как это применять
тогда вам надо понять, что делают операторы if, ==, [] и все в будет хорошо
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
Doctor_, поймите, что символы — тоже числа.
238 / 237 / 142
Регистрация: 03.02.2011
Сообщений: 1,437
Сообщение от BRcr
тогда вам надо понять, что делают операторы if, ==, [] и все в будет хорошо
Сообщение от talis
Doctor_, поймите, что символы — тоже числа.
ладно, нечего я вообще не понимаю..
спасибо за помощь..
82 / 82 / 24
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
Сообщение было отмечено Памирыч как решение
Решение
протрите ваши галаза
Сообщение от LostCoast
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#include #include int main() { char ch[800]; int i; printf("Write string:\n"); scanf("%s", &ch); for( i = 0; i strlen(ch); i++) { if (ch[i] == 'i') printf("%c",ch[i]); if (ch[i] == 'j') printf("%c",ch[i]); } return 0; }
вот пример
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
Сообщение от Doctor_
Есть символьная строка, как её разбить по элементам чтоб можно было сравнивать между собой?
Сообщение от talis
if( array[2] == ‘h’ )
Сообщение от BRcr
операторы if, ==, []
Сообщение от talis
символы — тоже числа.
пожалуйста.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Разбить строку на цифры и символы
Доброго времени суток, не могу создать массив символов ( точнее массив создается но первое значение.
Разбить строку на символы. Найти числа, им соответствующие и сплюсовать
Задача: программа с текстовым боксом (туда вводят имя) кнопкой, при нажатии на которую парсится.
Как разбить строку через Split по переносам на новую строку?
У меня есть строка (string file), которая выглядит так, как на фото. Как её разбить по переносам на.
Как разбить элемент массива на символы?
Ребят подскажите! Что-то у меня не получается ! Провел вывод слов из файла в массив слов.А как.
strsplit
C = strsplit( str ) разделения str в пробеле в C . Пробельный символ эквивалентен любой последовательности в наборе .
Если str имеет последовательные пробельные символы, затем strsplit обрабатывает их как один пробел.
C = strsplit( str , delimiter ) разделения str в разделителях, заданных delimiter .
Если str имеет последовательные разделители, без других символов между ними, затем strsplit обрабатывает их как один разделитель. Например, оба strsplit(‘Hello,world’,’,’) и strsplit(‘Hello. world’,’,’) возвратите тот же выходной параметр.
C = strsplit( str , delimiter , Name,Value ) задает дополнительные опции разделителя с помощью одного или нескольких аргументов пары «имя-значение». Например, чтобы обработать последовательные разделители как отдельные разделители, можно задать ‘CollapseDelimiters’,false .
[ C , matches ] = strsplit( ___ ) дополнительно возвращает массив, matches . matches выходной аргумент содержит все случаи разделителей на который strsplit разделения str . Можно использовать этот синтаксис с любым из входных параметров предыдущих синтаксисов.
Примеры
Разделение вектора символа на пробеле
str = 'The rain in Spain.'; C = strsplit(str)
C = 1×4 cell
C массив ячеек, содержащий четыре вектора символов.
Разделение вектора символа значений на определенном разделителе
Разделите вектор символов, который содержит разделенные от запятой значения.
data = '1.21, 1.985, 1.955, 2.015, 1.885'; C = strsplit(data,', ')
C = 1×5 cell
Разделите вектор символов, data , который содержит модули m/s с произвольным числом пробела по обе стороны от текста. Регулярное выражение, \s* , соответствия любой пробельный символ, кажущийся нулем или больше раз.
data = '1.21m/s1.985m/s 1.955 m/s2.015 m/s 1.885m/s'; [C,matches] = strsplit(data,'\s*m/s\s*',. 'DelimiterType','RegularExpression')
C = 1×6 cell
matches = 1x5 cell
В этом случае, вектор последнего знака в C isempty. Этот пустой символьный вектор следует за последним совпадающим разделителем.
Разделение пути на разделителе файлов
myPath = 'C:\work\matlab'; C = strsplit(myPath,'\')
C = 1×3 cell
Разделение вектора символа с несколькими разделителями
Разделите вектор символов на ‘ ‘ и ‘ain’ , обработка нескольких разделителей как один. Задайте несколько разделителей в массиве ячеек из символьных векторов.
str = 'The rain in Spain stays mainly in the plain.'; [C,matches] = strsplit(str,' ','ain'>,'CollapseDelimiters',true)
C = 1×11 cell Columns 1 through 7 Columns 8 through 11
matches = 1×10 cell Columns 1 through 7 Columns 8 through 10
Разделите тот же вектор символов на пробеле и на ‘ain’ , использование регулярных выражений и обработка нескольких разделителей отдельно.
[C,matches] = strsplit(str,'\s','ain'>,'CollapseDelimiters',. false, 'DelimiterType','RegularExpression')
C = 1×13 cell Columns 1 through 6 Columns 7 through 13
matches = 1×12 cell Columns 1 through 8 Columns 9 through 12
В этом случае, strsplit обрабатывает эти два разделителя отдельно, таким образом, пустые символьные вектора появляются в выходе C между последовательно совпадающими разделителями.
Разделение текста с несколькими, перекрыв разделители
Разделите текст на векторах символов ‘, ‘ и ‘, and ‘ .
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,', ',', and '>)
C = 1×3 cell
matches = 1×2 cell
Поскольку списки команд ‘, ‘ сначала и ‘, and ‘ содержит , strsplit функционируйте разделяет str на первом разделителе и никогда не переходит к второму разделителю.
Если вы инвертируете порядок разделителей, ‘, and ‘ берет приоритет.
str = 'bacon, lettuce, and tomato'; [C,matches] = strsplit(str,', and ',', '>)
C = 1×3 cell
matches = 1×2 cell
Входные параметры
str — Введите текст
вектор символов | строковый скаляр
Введите текст в виде вектора символов или строкового скаляра.
Типы данных: char | string
delimiter — Символы-разделители
вектор символов | 1 — n массив ячеек из символьных векторов | 1 — n массив строк
Символы-разделители в виде вектора символов, 1 — n массив ячеек из символьных векторов или 1 — n массив строк. Текст задан в delimiter не появляется в выходе C .
Задайте несколько разделителей в массиве ячеек или массиве строк. strsplit функционируйте разделяет str на элементах delimiter . Порядок, в котором разделители появляются в delimiter не имеет значения, если несколько разделителей не начинают матч в том же символе в str . В этом случае strsplit разделения на первом разделителе соответствия в delimiter .
delimiter может включать следующие escape-последовательности:
Обратная косая черта
Пример: ‘,’
Пример:
Типы данных: char | cell | string
Аргументы name-value
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, . NameN, ValueN .
Пример: ‘DelimiterType’,’RegularExpression’ сообщает strsplit обрабатывать delimiter как регулярное выражение.
CollapseDelimiters — Несколько обработка разделителя
1 (true) (значение по умолчанию) | 0 (false)
Несколько обработка разделителя в виде разделенной запятой пары, состоящей из ‘CollapseDelimiters’ и любой true или false . Если true , затем последовательные разделители в str обработаны как один. Если false , затем последовательные разделители обработаны как отдельные разделители, приводящие к пустому символьному вектору » элементы между совпадающими разделителями.
Пример: ‘CollapseDelimiters’,true
DelimiterType ‘DelimiterType’
‘Simple’ (значение по умолчанию) | ‘RegularExpression’
Тип разделителя в виде разделенной запятой пары, состоящей из ‘DelimiterType’ и один из следующих векторов символов.
‘Simple’ | За исключением escape-последовательностей, strsplit обработки delimiter как текст. |
‘RegularExpression’ | strsplit обработки delimiter как регулярное выражение. |
В обоих случаях, delimiter может включать escape-последовательности.
Выходные аргументы
C — Части исходного текста
массив ячеек из символьных векторов | массив строк
Части вектора исходного символа, возвращенного как массив ячеек из символьных векторов или как массив строк. C всегда содержит еще один элемент, чем matches содержит. Поэтому, если str начинается с разделителя, затем первый элемент C не содержит символов. Если str концы с разделителем, затем последняя ячейка в C не содержит символов.
matches — Идентифицированные разделители
массив ячеек из символьных векторов | массив строк
Идентифицированные разделители, возвращенные как массив ячеек из символьных векторов или как массив строк. matches всегда содержит тот меньше элемента, чем выход C содержит. Если str вектор символов или массив ячеек из символьных векторов, затем matches массив ячеек. Если str массив строк, затем matches массив строк.
Советы
- Начиная в R2016b, split функции рекомендуют разделить элементы массива строк.
Расширенные возможности
Основанная на потоке среда
Запустите код в фоновом режиме с помощью MATLAB® backgroundPool или ускорьте код с Parallel Computing Toolbox™ ThreadPool .
Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Смотрите также
Темы
Введенный в R2013a
Открытый пример
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Документация MATLAB
Поддержка
- MATLAB Answers
- Помощь в установке
- Отчеты об ошибках
- Требования к продукту
- Загрузка программного обеспечения
© 1994-2021 The MathWorks, Inc.
- Условия использования
- Патенты
- Торговые марки
- Список благодарностей
Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.
String.prototype.split()
Метод split() разбивает объект String на массив строк путём разделения строки указанной подстрокой.
Синтаксис
str.split([separator[, limit]])
Параметры
Необязательный параметр. Указывает символы, используемые в качестве разделителя внутри строки. Параметр separator может быть как строкой, так и регулярным выражением. Если параметр опущен, возвращённый массив будет содержать один элемент со всей строкой. Если параметр равен пустой строке, строка str будет преобразована в массив символов.
Необязательный параметр. Целое число, определяющее ограничение на количество найденных подстрок. Метод split() всё равно разделяет строку на каждом сопоставлении с разделителем separator , но обрезает возвращаемый массив так, чтобы он содержал не более limit элементов.
Описание
Метод split() возвращает новый массив.
Если разделитель separator найден, он удаляется из строки, а подстроки возвращаются в массиве. Если разделитель опущен, массив будет содержать только один элемент, состоящий из всей строки. Если разделитель является пустой строкой, строка str будет преобразована в массив символов.
Если разделитель является регулярным выражением, содержащим подгруппы, то каждый раз при сопоставлении с разделителем, результаты (включая те, что не определены) захвата подгруппы будут помещаться внутрь выходного массива. Однако, не все браузеры поддерживают эту возможность.
Примечание: Если строка является пустой строкой, метод split() вернёт массив, состоящий из одной пустой строки, а не пустой массив.
Примеры
Пример: использование метода split()
В следующем примере определяется функция, которая разбивает строку на массив строк, используя указанный разделитель. После разбиения строки, функция отображает сообщения, показывающие оригинальную строку (до разбиения), используемый разделитель, количество элементов в массиве и сами эти элементы.
function splitString(stringToSplit, separator) var arrayOfStrings = stringToSplit.split(separator); console.log('Оригинальная строка: "' + stringToSplit + '"'); console.log('Разделитель: "' + separator + '"'); console.log( "Массив содержит " + arrayOfStrings.length + " элементов: " + arrayOfStrings.join(" / "), ); > // Строчка из «Бури» Шекспира. Перевод Михаила Донского. var tempestString = "И как хорош тот новый мир, где есть такие люди!"; var monthString = "Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек"; var space = " "; var comma = ","; splitString(tempestString, space); splitString(tempestString); splitString(monthString, comma);
Пример сгенерирует следующий вывод:
Оригинальная строка: "И как хорош тот новый мир, где есть такие люди!" Разделитель: " " Массив содержит 10 элементов: И / как / хорош / тот / новый / мир, / где / есть / такие / люди! Оригинальная строка: "И как хорош тот новый мир, где есть такие люди!" Разделитель: "undefined" Массив содержит 1 элементов: И как хорош тот новый мир, где есть такие люди! Оригинальная строка: "Янв,Фев,Мар,Апр,Май,Июн,Июл,Авг,Сен,Окт,Ноя,Дек" Разделитель: "," Массив содержит 12 элементов: Янв / Фев / Мар / Апр / Май / Июн / Июл / Авг / Сен / Окт / Ноя / Дек
Пример: удаление пробелов из строки
В следующем примере метод split() ищет 0 или более пробелов, за которыми следует точка с запятой, за которой снова следуют 0 или более пробелов, и, если этот шаблон найден, удаляет пробелы из строки. Переменная nameList является массивом, возвращённым в результате работы метода split() .
var names = "Гарри Трамп ;Фрэд Барни; Хелен Ригби ; Билл Абель ;Крис Ханд "; console.log(names); var re = /\s*;\s*/; var nameList = names.split(re); console.log(nameList);
Пример напечатает две строки; на первой строке напечатана оригинальная строчка, а на второй — получившийся массив.
Гарри Трамп ;Фред Барни; Хелен Ригби ; Билл Абель ;Крис Ханд Гарри Трамп,Фред Барни,Хелен Ригби,Билл Абель,Крис Ханд
Пример: возврат ограниченного числа подстрок
В следующем примере метод split() ищет 0 или более пробелов в строке и возвращает первые три найденных подстроки.
var myString = "Привет, мир. Как дела?"; var splits = myString.split(" ", 3); console.log(splits);
Вывод скрипта будет следующим:
,,мир.,Как
Пример: захват подгрупп
Если параметр separator содержит подгруппы, сопоставившиеся результаты также будут присутствовать в возвращённом массиве.
var myString = "Привет 1 мир. Предложение номер 2."; var splits = myString.split(/(\d)/); console.log(splits);
Вывод скрипта будет следующим:
,1, мир. Предложение номер ,2,.
Пример: обращение строки при помощи метода split()
var str = "фывапролд"; var strReverse = str.split("").reverse().join(""); // 'длорпавыф' // split() возвращает массив, к которому применяются методы reverse() и join()
Бонус: используя оператор === (en-US), можно проверить, являлась ли строка палиндромом.
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-string.prototype.split |
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
- String.prototype.charAt()
- String.prototype.indexOf()
- String.prototype.lastIndexOf()
- Array.prototype.join()
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 7 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
MDN
Support
- Product help
- Report an issue
Our communities
Developers
- Web Technologies
- Learn Web Development
- MDN Plus
- Hacks Blog
- Website Privacy Notice
- Cookies
- Legal
- Community Participation Guidelines
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.
Как разбить строку на отдельные символы?
Как её разбить на отдельные символы? Понимаю, что data.split() , но только не понятно, что в split() писать. Заранее спасибо.
Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
задан 12 ноя 2011 в 15:09
1,678 4 4 золотых знака 28 28 серебряных знаков 49 49 бронзовых знаков
10 ответов 10
Сортировка: Сброс на вариант по умолчанию
result = list(data)
Отслеживать
47.8k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
ответ дан 12 ноя 2011 в 16:23
889 7 7 серебряных знаков 17 17 бронзовых знаков
list() не нужно вызывать, data уже последовательность в Питоне. str это встроенное имя—лучше не использовать его как имя своей переменной.
28 ноя 2016 в 22:04
data уже является последовательностью ( data[i] работает). Ничего вызывать не надо.
К примеру, чтобы напечатать каждый символ на отдельной строке:
for char in text: print(char)
Что можно кратко записать: print(‘\n’.join(text)) . Если нужен именно Питон список, то просто chars = list(text) .
Если вы работаете с текстом, то используйте Unicode. Юникодные строки в Питоне являются неизменямыми последовательностями символов (Unicode code points).
Видимые пользователем буквы (grapheme clusters) могут состоять из нескольких символов, к примеру, ё буква может быть представлена как последовательность двух символов: U+435 U+308 в Unicode— u’\u0435\u0308′ в Питоне:
>>> print(u'\u0435\u0308') ё
Каждый символ может быть представлен в различных кодировках одним или несколькими байтами, к примеру, букву я (U+044F) можно закодировать в два байта: 11010001 10001111 в utf-8 кодировке:
>>> print(u'\u044f') я >>> u'\u044f'.encode('utf-8') b'\xd1\x8f' # два байта: 209, 143
Байты/байтовая строка ( bytes тип) это неизменяемая последовательность байт в Питоне.
str тип является bytes в Питоне 2. str является Unicode в Питоне 3.
Кроме того существует понятие code unit (8 бит в utf-8, 16 бит в utf-16). Строки в Javascript можно часто рассматривать как последовательности utf-16 code unit (может иметь значение при переносе функциональности в Питон), к примеру, смайлик (U+1F602) символ представлен как два code unit: D83D DE02 в utf-16(BE) кодировке:
>>> print(u'\U0001F602') >>> u'\U0001F602'.encode('utf-16be') b'\xd8=\xde\x02' # четыре байта: 216, 61, 222, 2
То есть, если у вас текст, представленный как str в Питоне 3 (Юникод), то вы можете его рассматривать как различные последовательности в зависимости от задачи:
>>> import regex # $ pip install regex >>> text = 'я ё' # 6 code points >>> print(ascii(text)) '\u044f \U0001f602 \u0435\u0308' >>> regex.findall(r'\X', text) # 5 grapheme clusters ['я', ' ', '', ' ', 'ё'] # 5 user-perceived characters >>> utf16codeunits(text) # 7 utf-16 code units (1103, 32, 55357, 56834, 32, 1077, 776) >>> text.encode('utf-16be') # 14 bytes in utf-16 b'\x04O\x00 \xd8=\xde\x02\x00 \x045\x03\x08' >>> text.encode('utf-8') # 12 bytes in utf-8 b'\xd1\x8f \xf0\x9f\x98\x82 \xd0\xb5\xcc\x88'