2010-09-08 42 views
8

我們可以通過一個正則表達式來檢測一個數是否是偶數?正則表達式來檢查一個數是否爲偶數

我在想,如果我們可以有一個正則表達式來做到這一點,而不是通常的%或位操作。

感謝答覆:)

+3

的正則表達式操作字符串,但均勻度是數字的財產。字符串格式中的數字有哪些格式? – AakashM 2010-09-08 09:01:51

+13

請:只想知道這一點,不要這樣做。原始整型(byte,short,int和long)用於存儲數字。 BigInteger用於存儲真正的大數字。字符串用於存儲字符串。 – helios 2010-09-08 09:19:43

+0

面試問題,有人嗎? – 2010-09-08 13:22:33

回答

21

由於已經給出了正確的答案,我會爭辯說正則表達式不會是我的第一選擇。

  • 如果該號碼符合long範圍,使用%
  • ,如果沒有的話,你可以使用BigInteger.remainder(..),但也許檢查上次char是否表示即使數字會更有效。
+6

另一個訣竅是檢查最右邊的數字是0或1這將是:(n&1)== 1.真的意思是奇數,否則,甚至 – 2010-09-08 12:05:47

54

你可以試試:

^-?\d*[02468]$ 

說明:

  • ^:啓動錨。
  • -?:可選的負號。
  • \d*:零個或多個數字。
  • [02468]:字符類來匹配0 或2或4或6或8
  • $:尾錨
+1

最快和解釋。榮譽。 – 2010-09-08 09:00:58

+4

不錯,你沒有忘記負值;) – 2010-09-08 14:51:21

1

當然,你只要檢查最後一個數字是0/2/4/6/8

1

嘗試這個,我不確定它是否與java中的語法相同:

^\d*(2|4|6|8|0)$ 
3

如果是字符串,只需檢查是否endsWith(0) || endsWith(2) || ..返回true。如果是數字,那很簡單。

相關問題