@Dominik09

C# Динамический подсчет слов в тексте. Как сделать?

Добрый день. Нужно создать программу, в котором пользователь вводит текст, а сама программа в это время подсчитывает количество слов (внизу счетчик где показывает количество). Мне почти удалось реализовать этот алгоритм, с помощью функции Split. Но у меня возникла другая проблема. Когда я ставлю пробел или нажимаю enter, программа эти клавиши также забивает в счетчик, что неправильно. Пробовал задать условие. Выглядит вот так (код находится в методе KeyUp):
if ((e.KeyCode == Keys.Space) || (e.KeyCode == Keys.Enter)) { }
else
{
if ((e.KeyCode != Keys.Space) || (e.KeyCode != Keys.Enter))
SymbolCount.Text = richTextBox1.Text.Split(' ', ',', '.', ':', '\t', '\n').Length.ToString();
}
Сначала думал сработало, но когда я несколько раз нажимаю пробел или enter программа их сразу все в точности забивает в счетчик. Скажите как избавится от такой проблемы? Как сделать так чтобы он подсчитывал только слова, а не пробелы и энтеры?
  • Вопрос задан
  • 801 просмотр
Решения вопроса 2
lasalas
@lasalas
.NET Architect
... .Split(new [] {' ', ',', '.', ':', '\t', '\n'}, StringSplitOptions.RemoveEmptyEntries) ...
Ответ написан
Комментировать
newross
@newross
Product owner
Зачем городить сложные условия, если можно просто удалить пустые строки из результата?
Split(new[] { ' ', ',', '.', ':', '\t', '\n' }, StringSplitOptions.RemoveEmptyEntries);

Количество слов также можно посчитать используя regex. Тогда не придется делать огромный массив специальных символов и знаков пункции для функции Split.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы