我不是开发人员,但我知道应该有以下更好的方法。我对lambda表达式不太熟悉,但是很高兴能被展示出更好的方法。
我需要设置一个英国车牌。每年可以为车牌的第3位和第4位输入2个值之一:例如:01/03 / 2017-31 / 08/2017将具有“ 17”,例如AE17GHS
01/01 / 2017-28 / 02 / 2018年将有'67'例如AE67GHS
public void setVehiclePlateYear(StartDate startDate) {
//Example parameter:
//String startDate = "2017-06-17";
String year = startDate.getStartDateString().substring(2, 4);
String month = startDate.getStartDateString().substring(5, 7);
switch (month) {
case "03":
case "04":
case "05":
case "06":
case "07":
case "08":
if (year.equals("15"))
vehiclePlateYear = "15";
else if (year.equals("16"))
vehiclePlateYear = "16";
else if (year.equals("17"))
vehiclePlateYear = "17";
else if (year.equals("18"))
vehiclePlateYear = "18";
else if (year.equals("18"))
vehiclePlateYear = "19";
else if (year.equals("19"))
vehiclePlateYear = "20";
else if (year.equals("20"))
vehiclePlateYear = "21";
break;
case "01":
case "02":
case "09":
case "10":
case "11":
case "12":
if (year.equals("15"))
vehiclePlateYear = "64";
else if (year.equals("16"))
vehiclePlateYear = "65";
else if (year.equals("17"))
vehiclePlateYear = "66";
else if (year.equals("18"))
vehiclePlateYear = "67";
else if (year.equals("19"))
vehiclePlateYear = "69";
else if (year.equals("20"))
vehiclePlateYear = "70";
else if (year.equals("21"))
vehiclePlateYear = "71";
break;
}
setPlateDate(vehiclePlateYear);
}
我不知道您生成印版的算法是否正确,但是有两点:
case "08":
int parsedYear = Integer.valueOf(year);
if (parsedYear >= 15 && parsedYear <= 21) {
vehiclePlateYear = parsedYear;
}
另外,我认为您可以简化if语句的第二大块,如下所示:
int parsedYear = Integer.valueOf(year);
int base = 64;
int delta = parsedYear - 15;
if (parsedYear >= 15 && parsedYear <= 21) {
vehiclePlateYear = base + delta;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句