将多个 if 语句替换为单个 if 语句



我的代码应该接受一个字符串,如果这个字符串=="帮助",它将执行任务X,如果此字符串= "10.0.0.i",它将执行任务Y。这是代码:

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的新手。由于在消息 = "10.0.0.i" 中只有最后一个字符在更改,并且此代码将为所有字符实现任务 Y,我想知道是否可以将所有这些条件语句替换为单个"if"if ((message.equals("10.0.0.i"))(而不是为"10.0.0.1"、"10.0.0.2"等编写单独的if(。

如果以"10.0.0"开头的邮件仅更改最后一个字符,则可以将startsWith()用于"帮助"以外的其他情况:

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

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

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

类型转换还有另一个选项。

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

伙计们,这个解决方案变得过于复杂了。 如果它说帮助做x,如果它说别的事情做y

if(message.equals("Help")) {
//do X
}
else {
//do y
}

他没有说Y必须做100件不同的事情,只是除了帮助之外的所有事情都必须做Y.所以只需要一个非常简单的if/else语句。

最新更新