Как посчитать количество русских букв

xlaber

Client
Регистрация
08.11.2010
Сообщения
60
Благодарностей
25
Баллы
18
Добрый вечер.
Как реализовать подсчет русских букв в тексте.
В идеале мне нужно определить язык текста. Думаю посчитать русские и английские буквы, каких больше на таком языке текст.
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83
Добрый вечер.
Как реализовать подсчет русских букв в тексте.
В идеале мне нужно определить язык текста. Думаю посчитать русские и английские буквы, каких больше на таком языке текст.
Спарсить регуляркой все ру буквы и посчитать сниппетом
return project.Variables["test"].Value.Length;
 
  • Спасибо
Реакции: xlaber

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 104
Баллы
113
C#:
string input = project.Variables["text"].Value;
int countEn = Regex.Matches(input, "[a-zA-Z]").Count;
int countRu = Regex.Matches(input, "[а-яА-ЯёЁ]").Count;
if (countEn >= countRu) return "EN";
else return "RU";
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 104
Баллы
113
Этот код должен быстрее работать, т.к. не используются регулярки
C#:
string str = project.Variables["text"].Value;
char[] ch = str.ToCharArray();
int countEn = ch.AsParallel().Where(x => (x >= 'A' && x <= 'Z') || (x >= 'a' && x <= 'z')).Count();
int countRu = ch.AsParallel().Where(x => (x >= 'А' && x <= 'я') || x == 'Ё' || x == 'ё').Count();
if (countEn >= countRu) return "EN";
else return "RU";
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)