正则表达式检查数字是否均匀

use*_*425 8 java regex

我们可以使用正则表达式来检测数字是否均匀吗?

我想知道我们是否可以使用正则表达式而不是通常%或位操作.

谢谢你的回复:)

cod*_*ict 54

你可以试试:

^-?\d*[02468]$
Run Code Online (Sandbox Code Playgroud)

说明:

  • ^ :开始锚.
  • -? :可选的负号.
  • \d* :零个或多个数字.
  • [02468] :Char类匹配0或2或4或6或8
  • $ :结束锚

  • 很好,你没有忘记负值.;) (4认同)

Boz*_*zho 21

由于已经给出了正确答案,我认为正则表达式不会是我的首选.

  • 如果数字符合long范围,请使用%
  • 如果没有,你可以使用BigInteger.remainder(..),但也许检查最后一个char代表偶数位会更有效.

  • 另一个技巧是检查最右边的数字是0或1,它将是:(n&1)== 1.真意味着奇数,否则甚至 (6认同)