Regex, um zu überprüfen, ob eine Zahl gerade ist

8

Können wir eine Regex haben, um zu erkennen, ob eine Zahl gerade ist?

Ich habe mich gefragt, ob wir eine Regex dafür haben können, anstatt die üblichen % oder Bit-Operationen.

Danke für die Antworten:)

    
user441425 08.09.2010, 08:53
quelle

6 Antworten

21

Da die richtige Antwort bereits gegeben wurde, werde ich argumentieren, dass Regex nicht meine erste Wahl dafür sein würde.

  • Wenn die Zahl in den long -Bereich passt, verwenden Sie %
  • Wenn dies nicht der Fall ist, können Sie BigInteger.remainder(..) , aber vielleicht prüfen, ob die letzte char eine gerade Zahl darstellt, wäre effizienter.
Bozho 08.09.2010, 09:01
quelle
54

Sie können versuchen:

%Vor%

Erläuterung:

  • ^ : Startet den Anker.
  • -? : Optional negatives Vorzeichen.
  • \d* : Null oder mehr Ziffern.
  • [02468] : Char-Klasse, die mit 0 übereinstimmt oder 2 oder 4 oder 6 oder 8
  • $ : Endanker
codaddict 08.09.2010 08:54
quelle
3

Wenn es sich um eine Zeichenfolge handelt, prüfen Sie, ob endsWith (0) || endsWith(2) || .. gibt true zurück. Wenn es Nummer ist, ist es sehr einfach.

    
fastcodejava 08.09.2010 09:00
quelle
1

Versuchen Sie das, ich bin nicht sicher, ob es die gleiche Syntax in Java ist:

%Vor%     
aularon 08.09.2010 08:55
quelle
1

Sicher, Sie überprüfen nur, ob die letzte Zahl ein 0/2/4/6/8

ist     
Stephan Muller 08.09.2010 08:55
quelle
0

Benutze Regex niemals für einen Job, der einfach gemacht werden kann.

Ich stieß auf diesen Microsoft-Blog, der dasselbe sagt: Ссылка

    
Jone 27.10.2010 05:08
quelle

Tags und Links