Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск русских букв, регулярные выражения 
:(
    Опции темы
koroplysov
Дата 11.4.2011, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 29.8.2009

Репутация: нет
Всего: нет



В тексте нужно определить присутствуют ли русские буквы или нет. Я сделал так, но результат всегда true:
Код

        boolean ru=false;
        Pattern p = Pattern.compile(".*[а-я_А-Я].*.*");
        Matcher m = p.matcher(s);
        ru = m.matches();

Регулярными выражениями получется быстрее, но у меня не что-то не получается. Народ, подскажите, пожалуйста?
PM MAIL   Вверх
dobrolub
Дата 11.4.2011, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 385
Регистрация: 18.12.2009
Где: Vancouver, Canada

Репутация: 11
Всего: 16



быстрее будет вот что: 

Код

public boolean containsRussianChar(String str) {
  for (int i = 0; i < str.length(); i++) {
    if (str.charAt(i) >= 'а' && str.charAt(i) <= 'я')
      return true;
    else if (str.charAt(i) >=  'A' && str.charAt(i) <= 'Я') 
    return true;
  }

  return false;
}


Добавлено через 2 минуты и 47 секунд
быстрее у тебя получается потому что ".*" ловит всё. как только перепишешь выражение правильно будет медленнее чем цикл.

"[а-яА-Я]" - достаточно одной буквы, я так понимаю.
PM   Вверх
Stolzen
Дата 12.4.2011, 06:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 23
Всего: 48



Цитата(koroplysov @  11.4.2011,  20:42 Найти цитируемый пост)
[а-я_А-Я].*

А зачем подчеркивание?

[а-яА-ЯёЁ] - вот такой класс нужен, и все будет нормально искаться. Не забываем про "ё", т.к. она не входит в диапазон а-я


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
koroplysov
Дата 14.4.2011, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 120
Регистрация: 29.8.2009

Репутация: нет
Всего: нет



Кстати в цикле ведь можно дойти до первой русской буквы и break. Возможно это действительно быстрее будет. Спасибо буду разбираться.
PM MAIL   Вверх
aleksandy
Дата 18.4.2011, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 260
Регистрация: 17.12.2006

Репутация: 4
Всего: 5



Цитата(koroplysov @  11.4.2011,  19:42 Найти цитируемый пост)
В тексте нужно определить присутствуют ли русские буквы или нет

Код
"\\p{InCyrillic}"

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.