如何使用 String 作为条件来创建 switch case 场景?
How to have a switch case scenario using String as condition?
我有一个字符串,我需要从中获取最后一位数字并根据该字符使用 switch cases。
String securityNumber= "4561";
String lastDigit = securityNumber.substring(securityNumber.length()-1);
switch (lastDigit) {
case "0": System.out.println("0");
break;
case "1": System.out.println("1");
break;
case "2": System.out.println("2");
break;
case "3": System.out.println("3");
break;
case "4": System.out.println("4");
break;
default: System.out.println("def");
}
我得到的结果是“def”,但应该是“1”。
我做错了什么?我怎样才能从字符串“securityNumber”的输入中获得每个数字的案例场景?
你需要在每个 case 的末尾有一个 break
,否则 switch case 将失败并在它匹配的第一个 case 之后执行所有后续 case。当我 运行 它时,它打印:
1 2 3 4 def
要解决这个问题,代码如下:
String securityNumber = "4561";
String lastDigit = securityNumber.substring(securityNumber.length()-1);
switch (lastDigit) {
case "0": System.out.println("0");
break;
case "1": System.out.println("1");
break;
case "2": System.out.println("2");
break;
case "3": System.out.println("3");
break;
case "4": System.out.println("4");
break;
default: System.out.println("def");
}
您还忘记了 securityNumber
声明末尾的 ;
,所以它可能没有编译。
我有一个字符串,我需要从中获取最后一位数字并根据该字符使用 switch cases。
String securityNumber= "4561";
String lastDigit = securityNumber.substring(securityNumber.length()-1);
switch (lastDigit) {
case "0": System.out.println("0");
break;
case "1": System.out.println("1");
break;
case "2": System.out.println("2");
break;
case "3": System.out.println("3");
break;
case "4": System.out.println("4");
break;
default: System.out.println("def");
}
我得到的结果是“def”,但应该是“1”。
我做错了什么?我怎样才能从字符串“securityNumber”的输入中获得每个数字的案例场景?
你需要在每个 case 的末尾有一个 break
,否则 switch case 将失败并在它匹配的第一个 case 之后执行所有后续 case。当我 运行 它时,它打印:
1 2 3 4 def
要解决这个问题,代码如下:
String securityNumber = "4561";
String lastDigit = securityNumber.substring(securityNumber.length()-1);
switch (lastDigit) {
case "0": System.out.println("0");
break;
case "1": System.out.println("1");
break;
case "2": System.out.println("2");
break;
case "3": System.out.println("3");
break;
case "4": System.out.println("4");
break;
default: System.out.println("def");
}
您还忘记了 securityNumber
声明末尾的 ;
,所以它可能没有编译。