如何使用 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 声明末尾的 ;,所以它可能没有编译。