我正在使用eclipse来编写程序代码。有没有办法简化这个if语句?
if(departmentName.equalsIgnoreCase("Business Management")){
departmentName = "SBM";
}
if(departmentName.equalsIgnoreCase("Chemical & Life Sciences")){
departmentName = "SCL";
}
if(departmentName.equalsIgnoreCase("Design")){
departmentName = "SDN";
}
if(departmentName.equalsIgnoreCase("Engineering")){
departmentName = "SEG";
}
if(departmentName.equalsIgnoreCase("Oral Health Therapy")){
departmentName = "SHS(AH)";
}
if(departmentName.equalsIgnoreCase("Nursing")){
departmentName = "SHS(N)";
}
答案 0 :(得分:1)
您可以使用switch
语句,并将不区分大小写的部门名称与您的各种预期值进行比较。
if (departmentName == null) return;
switch(departmentName.toLowerCase()) {
case "business management":
departmentName = "SBM";
break;
case "chemical & life sciences":
departmentName = "SCL";
break;
// other cases
default:
"Not Found";
break;
}
请注意,如果部门名称为null
,我会返回。您可以随意处理null
,只要您不让代码尝试打开该空值。
答案 1 :(得分:1)
Tim's switch
answer可能是要走的路。
但另一种方法是将这些映射存储在Map<String,String>
中,然后通过
departmentName = theMap.get(departmentName);
要处理不区分大小写的方面,请将条目存储在全部小写的键下并使用
departmentName = theMap.get(departmentName.toLowerCase());
或查看this question的答案,了解其他不区分大小写的方法。
答案 2 :(得分:0)
从JDK 7开始,您可以在switch
对象上使用String
语句。
见link。或者查看@Tim Biegeleisen的回答。
使用switch
不会显着提高性能,尽管您的代码会更紧凑和可读。
如果您使用的是较旧的JDK版本,我建议您更正代码,因为您正在进行不必要的检查:
if(departmentName.equalsIgnoreCase("Business Management")){
departmentName = "SBM";
}
else if(departmentName.equalsIgnoreCase("Chemical & Life Sciences")){
departmentName = "SCL";
}
else if(departmentName.equalsIgnoreCase("Design")){
departmentName = "SDN";
}
else if(departmentName.equalsIgnoreCase("Engineering")){
departmentName = "SEG";
}
else if(departmentName.equalsIgnoreCase("Oral Health Therapy")){
departmentName = "SHS(AH)";
}
else if(departmentName.equalsIgnoreCase("Nursing")){
departmentName = "SHS(N)";
}
答案 3 :(得分:-1)
您也可以使用“切换”条件来避免多个if:
开关(选择) { 情况1: //声明(); 打破; 案例2: //声明(); 打破; //你的其他案件 // ... }