用单个if语句替换多个if语句

时间:2018-10-14 21:03:37

标签: java if-statement

我的代码应该使用一个字符串,如果该字符串==“ Help”,它将执行任务X;如果此字符串=“ 10.0.0.i”,它将执行任务Y。这是代码:< / p>

if(message.equals("Help")) {
                            //do X
}
else if ((message.equals("10.0.0.1")){
                                //do Y
    }
else if ((message.equals("10.0.0.2")){
                                //do Y
    }
else if ((message.equals("10.0.0.3")){
                                //do Y
    }
else if ((message.equals("10.0.0.4")){
                                //do Y
    }
.
.
.

我是Java新手。由于在message =“ 10.0.0.i”中,只有最后一个字符正在更改,并且此代码将为所有这些字符实现任务Y,因此我想知道是否有可能将所有这些条件语句if ((message.equals("10.0.0.i"))替换为单个“ if”(而不是分别为“ 10.0.0.1”,“ 10.0.0.2”等写if)。

4 个答案:

答案 0 :(得分:4)

如果以“ 10.0.0”开头的消息仅更改了最后一个字符,则对于“帮助”以外的其他情况,您可以使用startsWith()

if (message.equals("Help")) {
   //do X
} else if (message.startsWith("10.0.0")){
   //do Y
}

答案 1 :(得分:2)

一种选择是使用正则表达式:

if ((message.matches("10\\.0\\.0\\.[1234]")) {
    // do Y
}

答案 2 :(得分:0)

类型转换还有另一种选择。

    int i=9;

    if(message.equals("Help")) {
                        //do X
    }else if ((message.equals("10.0.0."+String.valueOf(i))){
                        //do Y
    }

答案 3 :(得分:0)

伙计,您使用此解决方案变得过于复杂。如果说帮助,则执行x,如果说其他,则执行y

                            count
datetime         article         
01.01.2018 09-10 Car            2
                 Horse          1
01.01.2018 10-11 Car            1
02.01.2018 09-10 Horse          2
02.01.2018 10-11 Car            1
                 Horse          1

他没有说y必须要做100项不同的事情,只是帮助之外的所有事情都必须做y。因此只需一个非常简单的if / else语句。