Quiero conseguir un número de 3 dígitos de la entrada del usuario mediante la función de escáner en primer lugar. El número de 3 dígitos puede ser 001 o 999, pero no 000. Entonces necesidad de imprimir este número en una frase "*** ª persona". Digamos que si el número de 3 dígitos es 021 entonces espero que imprimirá "persona 21".
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a value ");
int abc = input.nextInt();
String suffix = "";
if(abc==000){
System.out.println("invalid input");
}
switch(abc%10){ //get the last digit of the value
case 1: suffix = "st";break;
case 2: suffix = "nd";break;
case 3: suffix = "rd";break;
default: suffix = "th";
}
System.out.println(abc+suffix);
}
}
¿Cómo puedo cambiar mi código de tal manera que el programa verificará 11 12 13 casos 111ª?
Esencialmente, también debe primero comprobar si el segundo dígito desde la derecha es 1. Para obtener el segundo dígito desde la derecha, use esta expresión:
number / 10 % 10
El / 10
hace que el segundo dígito desde la derecha del primer dígito, y % 10
es, como usted sabe, cómo se obtiene el primer dígito de la derecha.
Así que el código se vería así:
if (number / 10 % 10 == 1) { // check second digit from the right first
suffix = "th";
} else { // if it's not 1, do the switch.
switch(abc%10){
case 1: suffix = "st";break;
case 2: suffix = "nd";break;
case 3: suffix = "rd";break;
default: suffix = "th";
}
}
System.out.println(abc+suffix);