Как разделить строку на слова c
Перейти к содержимому

Как разделить строку на слова c

  • автор:

Как разделить строку на слова c

Конкатенация строк или объединение может производиться как с помощью операции + , так и с помощью метода Concat :

Метод Concat является статическим методом класса string, принимающим в качестве параметров две строки. Также имеются другие версии метода, принимающие другое количество параметров.

Для объединения строк также может использоваться метод Join :

Метод Join также является статическим. Использованная выше версия метода получает два параметра: строку-разделитель (в данном случае пробел) и массив строк, которые будут соединяться и разделяться разделителем.

Сравнение строк

Для сравнения строк применяется статический метод Compare :

Данная версия метода Compare принимает две строки и возвращает число. Если первая строка по алфавиту стоит выше второй, то возвращается число меньше нуля. В противном случае возвращается число больше нуля. И третий случай — если строки равны, то возвращается число 0.

В данном случае так как символ h по алфавиту стоит выше символа w, то и первая строка будет стоять выше.

Поиск в строке

С помощью метода IndexOf мы можем определить индекс первого вхождения отдельного символа или подстроки в строке:

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

Еще одна группа методов позволяет узнать начинается или заканчивается ли строка на определенную подстроку. Для этого предназначены методы StartsWith и EndsWith . Например, в массиве строк хранится список файлов, и нам надо вывести все файлы с расширением exe:

Разделение строк

С помощью функции Split мы можем разделить строку на массив подстрок. В качестве параметра функция Split принимает массив символов или строк, которые и будут служить разделителями. Например, подсчитаем количество слов в сроке, разделив ее по пробельным символам:

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

Второй параметр StringSplitOptions.RemoveEmptyEntries говорит, что надо удалить все пустые подстроки.

Обрезка строки

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

Функция Trim без параметров обрезает начальные и конечные пробелы и возвращает обрезанную строку. Чтобы явным образом указать, какие начальные и конечные символы следует обрезать, мы можем передать в функцию массив этих символов.

Эта функция имеет частичные аналоги: функция TrimStart обрезает начальные символы, а функция TrimEnd обрезает конечные символы.

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

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

Вставка

Для вставки одной строки в другую применяется функция Insert :

Первым параметром в функции Insert является индекс, по которому надо вставлять подстроку, а второй параметр — собственно подстрока.

Удаление строк

Удалить часть строки помогает метод Remove :

Первая версия метода Remove принимает индекс в строке, начиная с которого надо удалить все символы. Вторая версия принимает еще один параметр — сколько символов надо удалить.

Замена

Чтобы заменить один символ или подстроку на другую, применяется метод Replace :

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

Смена регистра

Для приведения строки к верхнему и нижнему регистру используются соответственно функции ToUpper() и ToLower() :

Split a string into words by multiple delimiters [duplicate]

The community reviewed whether to reopen this question 12 months ago and left it closed:

Original close reason(s) were not resolved

I have some text (meaningful text or arithmetical expression) and I want to split it into words.
If I had a single delimiter, I’d use:

How can I break the string into tokens with several delimiters?

Baum mit Augen's user avatar

7 Answers 7

Assuming one of the delimiters is newline, the following reads the line and further splits it by the delimiters. For this example I’ve chosen the delimiters space, apostrophe, and semi-colon.

If you have boost, you could use:

Using std::regex

A std::regex can do string splitting in a few lines:

I don’t know why nobody pointed out the manual way, but here it is:

and in function:

This way you can do something useful with the delims if you want.

forumulator's user avatar

And here, ages later, a solution using C++20:

BernhardWebstudio's user avatar

If you interesting in how to do it yourself and not using boost.

Assuming the delimiter string may be very long — let say M, checking for every char in your string if it is a delimiter, would cost O(M) each, so doing so in a loop for all chars in your original string, let say in length N, is O(M*N).

I would use a dictionary (like a map — «delimiter» to «booleans» — but here I would use a simple boolean array that has true in index = ascii value for each delimiter).

Now iterating on the string and check if the char is a delimiter is O(1), which eventually gives us O(N) overall.

Here is my sample code:

Note: tokenizeMyString returns vector by value and create it on the stack first, so we’re using here the power of the compiler >>> RVO — return value optimization 🙂

C# – How to split a string

String can be split into collection of substrings based on a defined character (separator) using Split() function. Split is part of String class which exists in the System namespace.

Split function is overloaded and has various forms which allow to:

  • pass separator as a single character, array of characters, single string or array of strings;
  • define maximum number of substrings in output array;
  • define split options like removing empty elements from returned collection.

Below you can find examples which present each of above options. Every case has variable named input containing string to be split, variable named output which is array of strings being a result of Split function. Achieved substrings are printed to the console with following code:

C# String Split()

In this tutorial, we will learn about the C# String Split() method with the help of examples.

The Split() method breaks up a string at the specified separator and returns its substrings.

Example

Split() Syntax

The syntax of the string Split() method is:

Here, Split() is a method of class String .

Split() Parameters

The Split() method takes the following parameters:

  • separator — separates the substrings in a string
  • count — controls the number of resulting substrings
  • options — specifies whether to omit empty array elements or to include them

Split() Return Value

The Split() method returns a string array containing the substrings.

Example 1: Split String Into an Array

Output

Here, we split the string at :: . Since the count parameter is not passed, the returned array contains all the substrings.

Example 2: Split String Using Multiple Characters

Output

Here, we split the string at characters ‘ ‘ , ‘,’ , ‘.’ , and ‘/’ .

Example 3: Split String Delimited by a String or String Array

Output

In the above example, notice the line,

  • separators — string array used to split the string text at «is» and «for»
  • StringSplitOptions.None — includes empty array elements in the returned array

Example 4: Return a Specific Number of Substrings

Output

In the above example, notice the line,

Here, we have specified the count to 2, so it returns a maximum number of 2 substrings.

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

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