Tengo una cadena de la que necesito obtener el último dígito y uso los casos de cambio de acuerdo con ese carácter.
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"); }Obtengo el "def" como resultado, pero debería ser "1".
¿Qué estoy haciendo mal? ¿Cómo puedo tener un escenario de caso para cada uno de los dígitos de una entrada de String "securityNumber"?
Necesita un break al final de cada caso, de lo contrario, el caso de cambio fallará y ejecutará todos los casos posteriores después del primero que coincida. Cuando lo ejecuto, imprime:
1 2 3 4 def
Para solucionar esto, aquí está el código:
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"); } También olvidaste un ; al final de la declaración de securityNumber , por lo que es posible que no se haya compilado.