Java中if的判断条件很多怎么简化

现在有一个需求是如果是某个商户下的设备,就做相应的处理,设备有40个怎么简化。

if(number == "num1" || number == "num2"|| number == "num3"|| number == "num4"|| number == "num5"|| number == "num6"|| number == "num7"|| number == "num8"|| number == "num9"|| number == "num10"|| number == "num11"|| number == "num12"|| number == "num13"|| number == "num14"|| number == "num15"|| number == "num16"|| number == "num17"|| number == "num18"|| number == "num19"|| number == "num20"|| number == "num21|| number == "num23"|| number == "num24"|| number == "num25"|| number == "num26...." ){
    //做相应处理
}

类似这样的,有没有简单点的办法呢

谢谢大佬门啦

找到解决办法啦,谢谢大家。
下面贴出来

        List<String> list = new ArrayList<>();
        list.add("XB203039");
        list.add("XB203031");
                ......


        if(list.contains("XB20303")){
            System.out.println("true");
            ......
        }


6个回答

Boolean b = false;
for (int i = 1; i < 27; i++)
{
    if (number.equals("num" + i)) { b= true; break;}
}
if (b)
...
qq_37746483
好小一只 num1-num26只是我弄得demo,实际情况不是这样的哟,我已经把我找的解决办法更新了,谢谢啦
4 个月之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 回复好小一只: 请采纳一下
4 个月之前 回复
qq_37746483
好小一只 谢谢啦,我找到解决办法啦
4 个月之前 回复

可以参考楼上方法,补充下,for中27改成40;

for (int i = 1; i < 40; i++)

如果考虑扩展和维护,可以考虑用配置的方式,比如渠道和对应的设置配置在json文件中,如

{
channelId:[number1,number2,number3...number40]
}

你可以用把相同的一批放入一个list里面
if(list.contains("参数"){
//处理
}

这个优化需要具体查看实际问题,比如第一个判断30+,并且是相同处理,那这样条件应该封一下吧?
在这就是这30+的条件都是什么规律
哎呀 解决的思路不错

建立数组,将判断条件放进去,然后以遍历数组的形式判断即可。

像这种设备名称的话推荐卸载枚举类里面,然后你可以在枚举类加一个方法,根据设备名称查询值,如果该方法返回有值说明存在,如果返回为null,说明不存在

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问