Форум программистов, компьютерный форум, киберфорум
Ruby
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
1

Есть ли в руби аналоги сишных isalpha и isdigit?

11.09.2014, 20:30. Показов 2085. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вопрос в названии
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2014, 20:30
Ответы с готовыми решениями:

Isalpha;isdigit неверное употребление функций?
Программа выводит сначала цифры,затем буквы,затем ост.символы исходной строки. Не могу...

Можно ли применять встроенные функции isdigit и isalpha для структур?
Есть задание с структурами, надо вписать: 1) предмет 2) преподавателя 3) номер группы(цифра) 4)...

Есть ли аналог isalpha, только для string
Добрый вечер! Как проверить, что введены только буквы, без символов, isalpha не прокатило:curtsy:...

Какой есть аналог isalpha для работы с русским алфавитом?
Использую string и нужно проверять записан ли внутри текст или число. Какими средствами можно это...

3
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.09.2014, 20:41 2
Лучший ответ Сообщение было отмечено Мотороллер как решение

Решение

наверное, только с помощью регулярок.

Добавлено через 2 минуты
Можно переопределить класс String, добавив эти методы
Ruby
1
2
3
4
5
6
7
8
9
10
11
class String
    def isalpha?
        !!match(/^[[:alpha:]]+$/)
    end
    def isdigit?
        !!match(/^\d+$/)
    end
end
 
print 'f'.isalpha?, ' ', '1'.isalpha?, "\n"
print 'f'.isdigit?, ' ', '1'.isdigit?
http://ideone.com/dO5jTw

Не по теме:

Цитата Сообщение от KOPOJI Посмотреть сообщение
наверное, только с помощью регулярок.
в смысле, конечно, можно и перебором..



Добавлено через 3 минуты
Ну или, если так больше нравится, можно переопределить по другому))
Ruby
1
2
3
4
5
6
7
8
9
10
11
class String
    def isalpha?
        !!(self =~ /^[[:alpha:]]+$/)
    end
    def isdigit?
        !!(self =~ /^\d+$/)
    end
end
 
print 'f'.isalpha?, ' ', '1'.isalpha?, "\n"
print 'f'.isdigit?, ' ', '1'.isdigit?
http://ideone.com/04FJud
1
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
11.09.2014, 21:49  [ТС] 3
KOPOJI, а два восклицательных знака перед match что значат?
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
11.09.2014, 21:58 4
перевод в булев тип. В руби, насколько мне известно, нет как такового, оператора/метода приведения к булеву типа, есть только отрицание, поэтому сначала переводим в булев отрицанием, а затем инвертируем.
Если будет несколько понятнее, то можно записать "not not" вместо восклицательных знаков.
В принципе, можно еще и так, например)
Ruby
1
!(self =~ /^[[:alpha:]]+$/) ^ 1
или с тернарным оператором
Ruby
1
self =~ /^[[:alpha:]]+$/ ? true : false
ну или с обычным, по аналогии. В общем, вариантов много..
1
11.09.2014, 21:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.09.2014, 21:58
Помогаю со студенческими работами здесь

Есть ли в c++ аналоги Паскалевских in и
Есть ли в c++ аналоги Паскалевских in и ..? Или всей конструкции целиком (x1 in ) Заранее...

С / С++ Есть ли аналоги strstr() ?
Есть ли функция которая не возвращала бы позицию вхождения строки str1 в str2, а просто выдавала бы...

Synergy - есть ли аналоги?
Есть такая прикольная программка - synergy, позволяет с одного компа управлять мышкой-клавой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru