Можем ли мы найти регулярное выражение для определения четности числа?
Мне было интересно, можем ли мы использовать регулярное выражение вместо обычных % или битовых операций.
%
Спасибо за ответы:)
Вы можете попробовать:
^-?\d*[02468]$
Объяснение:
^
-?
\d*
[02468]
$
Поскольку правильный ответ уже дан, я буду утверждать, что регулярное выражение не будет моим первым выбором для этого.
long
BigInteger.remainder(..)
char
Если это строка, просто проверьте, возвращает ли endsWith(0) || endsWith(2) || .. значение true. Если это число, это очень просто.
endsWith
(0) || endsWith(2) || ..
Попробуйте, я не уверен, что это тот же синтаксис в Java:
^\d*(2|4|6|8|0)$
Конечно, вы просто проверяете, является ли последний номер 0/2/4/6/8
0/2/4/6/8
Никогда не используйте регулярные выражения для работы, которая может быть легко сделана иначе.
Я наткнулся на этот блог Microsoft, который говорит то же самое: http://blogs.msdn.com/b/bclteam/archive/2005/02/21/377575.aspx