我的代码应该接受一个字符串,如果这个字符串=="帮助",它将执行任务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语句。