Java正则表达式

时间:2014-05-01 21:29:45

标签: java

如果条件转换为java正则表达式,我想转换如下。 var将作为输入而来,它可以是-1,1,2,2到-20,20之间的任何数字。 我正在寻找代码示例。任何帮助将不胜感激。感谢。

if (var == 1 || var == -1 || var == 2 || var == -2
    || var == 3 || var == -3 || var == 4
    || var == -4 || var == 5 || var == -5
    || var == 10 || var == -10 || var == 11
    || var == -11 || var == 12 || var == -12
    || var == 14 || var == -14 || var == 16
    || var == -16 || var == 17 || var == -17
    || var == 19 || var == -19 || var == 20
    || var == -20){


dosomething;

}

3 个答案:

答案 0 :(得分:3)

如果数字是[-20,20]范围内的整数,您只需执行以下操作:

if (var >= -20 && var <= 20){
   doSomething();
}

我不知道你为什么要使用正则表达式。如果您的输入即将出现String,只需使用Integer.parseInt进行解析即可。

答案 1 :(得分:2)

我假设var是一个字符串,你确实想要一个正常的表达式,原因很奇怪。

if (var.matches("-?([1-9]|1[0-9]|20)")) {
  dosomething;
}

答案 2 :(得分:1)

看起来你正在描述一个不相交的类别,不包括零(因为我在原来的if语句中没有看到它。)

如果您正在查看[-20,0] U(0,20)之间的连续范围,那么这个布尔表达式将有所帮助:

if(var != 0 && var >= -20 && var <= 20) {
    // logic
}

正则表达式最适合解析文本表达式,而不是数值范围。