Java 如何简化if语句
我正在使用eclipse编写一个程序。有没有办法简化这个if语句Java 如何简化if语句,java,Java,我正在使用eclipse编写一个程序。有没有办法简化这个if语句 if(departmentName.equalsIgnoreCase("Business Management")){ departmentName = "SBM"; } if(departmentName.equalsIgnoreCase("Chemical & Life Sciences")){ departmentName = "SCL"; }
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)";
}
您可以使用
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
,只要您不让代码尝试打开该null值。可能是一种方法
但另一种选择是将这些映射存储在映射中
,然后通过
departmentName = theMap.get(departmentName);
要处理不区分大小写的特性,可以将条目存储在全是小写的键下,并使用
departmentName = theMap.get(departmentName.toLowerCase());
或者查看对的回答,以了解执行不区分大小写部分的其他方法。自JDK 7以来,您可以在
字符串
对象上使用开关
语句。
看这个。或者检查@Tim Biegeleisen的答案
使用开关
不会显著提高性能,尽管您的代码将更加紧凑和可读
如果您使用的是较旧的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)";
}
作为侧节点。使其更空保存:“化学和生命科学”。equalsIgnoreCase(部门名称)使用switch case您可以使用switch语句实现此目的:除非您不比较成百上千的
字符串,否则您不会注意到switch
优化,或者在数千次迭代的紧密循环中运行开关。:-)但这和它不在那里不一样。编辑得好。