![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| val_vp |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 15.11.2006 Где: Днепродзержинск Репутация: нет Всего: нет |
Всем привет, с прошедшими и наступающими.
Вот столкнулся с такой проблемой: есть некий идентификатор (передаваемый как String) произвольной длины типа "0100023234", букв быть не должно, требуется перед его обработкой проверить валидный он или нет (т.е. только ли цифры там). считаю, что валидацию необходимо делать через regexp, примерно так
но я видел и довольно "экзотичесный" способ, правда нарушающий заветы г-на Блоха (поэтому я его закодил только ради теста)
я решил проверить, что быстрее и вот что получилось. 1) как тестил (вот тут возможно и накосячил) создал массив с тестовыми идентификаторами
и в цикле его проверял
2) результат для различных значений num > 100 000 regexp почти в 2 раза быстрее ~ 10 000 примерно одинаково ~ 100 и < 100 NumberFormatException почти в 2 раза быстрее Интересно почему такой результат ведь по идее Exception-ы это самый ресурсоемкий механизм? |
||||||||
|
|||||||||
| nornad |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Скорее так:
Может, потому, что регулярные выражения - штука тоже не самая легковесная? -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||
|
|||||
| shimopus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 25.8.2006 Репутация: 1 Всего: 1 |
Тогда очень интересно почему регэксп на больших количествах данных выигрывает... Неужели там есть механизм кеширования???
|
|||
|
||||
| val_vp |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 15.11.2006 Где: Днепродзержинск Репутация: нет Всего: нет |
nornad, спасибо за \\d+, а то б и "" засчитало б за правильный ИД.
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |