pouvons-nous avoir une regex pour détecter si un numéro est même? p>
Je me demandais si nous pouvons avoir une regex pour le faire au lieu d'usual merci pour des réponses :) p> % code> ou des opérations bits. p>
6 Réponses :
Vous pouvez essayer: explication: p>
^ code>: démarrez l'ancre. Li>
-? code>: signe négatif optionnel. Li>
\ d * code>: zéro ou plusieurs chiffres. LI>
[02468] Code>: Char Classe pour correspondre à un 0
ou 2 ou 4 ou 6 ou 8 li>
$ code>: ancreur de fin li>
ul> p>
la plus rapide et avec explication. gloire.
Nice que vous n'avez pas oublié les valeurs négatives.;)
sûr, vous venez de vérifier si le dernier numéro est un 0/2/4/6/8 code> p>
Essayez ceci, je ne suis pas sûr que si c'est la même syntaxe en Java:
^\d*(2|4|6|8|0)$
S'il s'agit d'une chaîne, vérifiez simplement si findien code> (0) || Finwith (2) || .. code> retourne vrai. Si c'est le numéro, c'est très simple. P>
Étant donné que la bonne réponse a déjà été donnée, je dirons que la regex ne serait pas mon premier choix pour cela. P>
% code> li>
- Si ce n'est pas le cas, vous pouvez utiliser
biginteger.remainder (..) code> , mais peut-être vérifier si le dernier char code> représente un chiffre même plus efficace. li>
ul> Une autre astuce consiste à vérifier que le chiffre le plus à droite est 0 ou 1 qui sera: (N & 1) == 1. True signifie étrange, sinon même
n'utilisez jamais regex pour un travail qui peut être facilement effectué autrement. P>
Je suis tombé sur ce blog Microsoft qui dit la même chose: Lien P>
Pouvez-vous élaborer ce qui est dans le lien ou pourquoi ne pas utiliser une regex dans ce cas?
Les regèges fonctionnent sur des cordes, mais la même-même est une propriété de chiffres. Quel format vos numéros sont-ils potentiellement en format string?
S'il vous plaît: ne vous émervegez que à ce sujet, ne le faites pas. Les types d'intégration primitive (octets, courts-intestins, int et long) sont conçus pour stocker des nombres. BigInteger est fait pour stocker des nombres vraiment gros. Les chaînes sont pour stocker des chaînes.