序数java-javai类

序数java-javai类,java,prompt,ordinals,Java,Prompt,Ordinals,在得到输入数字1到10的提示时卡住了-结果应将st、rd、th和nd添加到数字中。 编写一个程序,提示用户输入1到10之间的任意整数,然后以带后缀的顺序形式显示该整数 public class Ordinals { public static String Ordinals(int i) { System.out.println("Enter an integer between 0 to 10: "); Scanner input =

在得到输入数字1到10的提示时卡住了-结果应将st、rd、th和nd添加到数字中。 编写一个程序,提示用户输入1到10之间的任意整数,然后以带后缀的顺序形式显示该整数

public class Ordinals {

    public static String Ordinals(int i) {

            System.out.println("Enter an integer between 0 to 10: ");
            Scanner input = new Scanner(System.in);


            int hundred = value % 100;
            int tens = value % 10;
            if (hundred - tens == 10) {
                return "th";
            }
            switch (tens) {
            case 1:
                return "st";
            case 2:
                return "nd";
            case 3:
                return "rd";
            default:
                return "th";

            }


        public static void main(String[] args) {
            Ordinals number = new Ordinals();
            for (int i = 1; i <= 10; i++) {
                String st = number.Ordinals(i);
                System.out.println(i + " = " + i + st);
            }
        }
    }
公共类序号{
公共静态字符串序号(int i){
System.out.println(“输入一个介于0到10之间的整数:”);
扫描仪输入=新扫描仪(System.in);
int 100=值%100;
整数十位数=值%10;
如果(百分之十==10){
返回“th”;
}
开关(十){
案例1:
返回“st”;
案例2:
返回“nd”;
案例3:
返回“rd”;
违约:
返回“th”;
}
公共静态void main(字符串[]args){
序号编号=新序号();

对于(int i=1;i在创建扫描仪的行下添加
value=input.nextInt()

我认为最好将
扫描仪移动到main:

public static void main(String[] args) {
    Ordinals number = new Ordinals();
    Scanner input = new Scanner(System.in);
    while(true){
        System.out.println("Enter an integer between 0 to 10: ");
        int i = input.nextInt();
        System.out.println(i+number.Ordinals(i));
    }
}
然后添加到序数:

int value = i;

方法将独立于输入类型。

您的问题是…?简短回答-->;提示文本不正确。如果有效值介于1和10之间,则不需要使用模数。