如何简化if语句

时间:2017-09-22 09:22:55

标签: java

我正在使用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)";
      }

4 个答案:

答案 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:             //声明();             打破;         //你的其他案件         // ... }