Следующий пример кода демонстрирует возможность разбора строки при помощи метода String.Split. Работа метода заключается в возврате массива строк, в котором каждый элемент представляет слово. В качестве ввода Split принимает массив символов, определяющих какие символы должны использоваться в качестве разделителей. В этом примере используются пробелы, запятые, точки, двоеточия и табуляция. Массив, содержащий эти разделители, передается в Split, и каждое слово в предложении выводится отдельно при помощи результирующего массива строк.
Пример: разбить предложение на слова
char razdelitel = ' ';string text = "Шла Саша по шоссе и сосала сушку";Console.WriteLine("Исходный текст: '{0}'", text);string[] words = text.Split(razdelitel);Console.WriteLine("{0} слов в тексте:", words.Length);foreach (string s in words) Console.WriteLine(s);
Рисунок 1 - Пример выполнения
|
В качестве разделителя может выступать массив символов.
char[] delimiterChars = { ' ', ',', '.', ':', '\t' }; string text = "one\ttwo three:four,five six seven";Console.WriteLine("Original text: '{0}'", text);string[] words = text.Split(delimiterChars);Console.WriteLine("{0} words in text:", words.Length);foreach (string s in words) Console.WriteLine(s);
Рисунок 2 - Пример выполнения
|
Пример: Ввести текстовую строку. Напечатать слова, в которых первая буква встречается еще хотя бы раз.
Console.Write("Введите предложение: ");string s=Console.ReadLine();string[] words= s.Split(' ','.',',');foreach (string word in words) { char c=word[0]; bool flag = false; int i=1; while (i < word.Length &!flag) { if (word[i] == c) flag = true; i++; } if (flag) Console.WriteLine(word); }Console.ReadKey();
Рисунок 3 - Пример выполнения
|