Как можно сравнить I-й символ в строке с любым непробельным символом?
У меня есть текст из richTextBox, сохраненный в строке. Мне нужно узнать количество слов в нем. Конечно, можно воспользоваться Split() по пробелам примерно так:
private void countWords() {
if (richTextBox.Focused)
{
String buf = richTextBox.Text;
int counter = 0;
buf.Trim();
counter = buf.Split(' ').Length;
counterLabel.Text += ' ' + counter.ToString();
}
}
но хочу отловить случаи, когда в перед следующим словом 2 или больше пробелов. Как Составить такое условие?
если i-й символ в тексте пробел, а (i+1) и до следующего пробела — непробельные символы, то увеличить счетчик слов
Пробую так :
String buf = richTextBox.Text;
int counter = 0;
for (int i =0; i< buf.Length; ++i) {
if (buf[i].Equals(' ') && buf[i + 1].Equals('\S')) {
++counter;
}
}
и мне подчеркивает '\S', как нераспознанную escape-последотельность. Для '\S' обязательно нужно использовать регулярное выражение? Помогите его правильно составить, спасибо.
Ответы (1 шт):
Автор решения: DiD
→ Ссылка
Этот функционал реализуют регулярные выражения.
MatchCollection matches = Regex.Matches(buf,@"\s+");
int wordCount = matches.Count+1