Как определить язык в строке?

Добрый день. Есть строка из 4-9 символов.
Мне необходимо понять на каком языке это слово. Либо Русский, либо Английский.
Подскажите пожалуйста, как реализовать проверку строки на принадлежность языка ?
У меня есть мысль, обрезать строку до одного символа, сверять этот символ с кодом ASCII, и если код совпадает с буквой, тогда определять. Но встал на проблеме переводе строки из одного буквы, в символ. Показывается только метод ToCharArray().
Подскажите пожалуйста, как правильно реализовать это ? Спасибо заранее.
  • Вопрос задан
  • 5551 просмотр
Решения вопроса 1
@S0HardCore
Получить первый символ можно с помощью [0].
А проверять можно банально:
if (myString[0] >= 'a' && 'z' <= myString[0])
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@vasilek-nik
С использованием регулярок
if (!Regex.IsMatch(stringToCheck, @"\P{IsCyrillic}"))
{
    // Сработает если все символы - кириллица
}
if (!Regex.IsMatch(stringToCheck, @"\p{IsCyrillic}"))
{
    // Сработает если хотя бы один символ - кириллица
}

Проверку на латиницу можно сделать с помощью подобного блока 'IsBasicLatin'.

Подробнее можно тут

Если без регулярок, то можно например составить константную строку - русский алфавит.
После проверять входит ли нужный символ в строку алфавита, например, с помощью функции Contains у класса String.
P.S. вопрос скорее общий, по C#, так что думаю тег Unity следует убрать.
Ответ написан
Комментировать
Griboks
@Griboks Куратор тега C#
Кириллица, если мне не изменяет память, кодируется 8 битами, а латиница - 7. Значит, код русской буквы >127. Дальше можно и загуглить, как привети один тип к другому в шарпе.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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