Символы-разделители. Чем можно заменить Split? - C#
Формулировка задачи:
Привет.
В общем у меня есть текст, я его считываю при помощи StreamReader. Когда дело доходит до подсчета слов в строке я дальше не знаю что делать. То бишь я не знаю как при помощи стандартных функций отделить слова от символов-разделителей(' ' , '.' , ...).
Дело в том что мне нельзя пользоваться готовые функции (Sort, Reverse, Split и т.д.)
Конечно при помощи Split это бы выглядело вот так: string [] split = words.Split(new Char [] {' ', ',', '.', ':', '\t' });
а вот другим способом как это воссоздать я не знаю
Решение задачи: «Символы-разделители. Чем можно заменить Split?»
textual
Листинг программы
static void Main(string[]args)
{
var text = Console.ReadLine();
var words = text.Split(char.IsLetter);
foreach (var word in words)
Console.WriteLine(word);
}
static IEnumerable<string> Split(this string str, Func<char,bool> pred)
{
StringBuilder sb = new StringBuilder();
for(int i = 0; i < str.Length; i++)
{
if (pred(str[i]))
sb.Append(str[i]);
else if (sb.Length > 0)
{
yield return sb.ToString();
sb.Clear();
}
}
if (sb.Length > 0)
yield return sb.ToString();
}