如果条件转换为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;
}
答案 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
}
正则表达式最适合解析文本表达式,而不是数值范围。