我想我有适当的代码可以进行转换(感谢用户Matt Matt Bryant的帮助),但是现在我对如何继续感到困惑。到目前为止,我已经学到了如何在主体中键入代码(公共静态void main(String args [])),但是在我的帮助下,这段代码似乎没有包含在main方法中。任何人都可以帮我运行此代码吗? :)(此外,我也遇到错误,提示扫描仪无法解析为类型/变量)。我不知道主要方法中没有写什么,但这仅仅是因为我不确定此时该怎么做。

import java.util.Scanner;

public class romannumeralconversion {

    public static void main(String args[]) {

    }

    public String ToRoman() {

        Scanner myKeyboard = new Scanner(System.in);
        System.out.println("Enter the integer: ");
         number = myKeyboard.nextInt();
        myKeyboard.close();
        return ToRoman(number);

    }

    public String ToRoman(int number) {

        if ((number < 1 || (number > 3999)))

            return "INVALID";

        if (number >= 1000)
            return "M" + ToRoman(number - 1000);

        if (number >= 900)
            return "CM" + ToRoman(number - 900);

        if (number >= 500)
            return "D" + ToRoman(number - 500);

        if (number >= 400)
            return "CD" + ToRoman(number - 400);

        if (number >= 100)
            return "C" + ToRoman(number - 100);

        if (number >= 90)
            return "XC" + ToRoman(number - 90);

        if (number >= 50)
            return "L" + ToRoman(number - 50);

        if (number >= 40)
            return "XL" + ToRoman(number - 40);

        if (number >= 10)
            return "X" + ToRoman(number - 10);

        if (number >= 9)
            return "IX" + ToRoman(number - 9);

        if (number >= 5)
            return "V" + ToRoman(number - 5);

        if (number >= 4)
            return "IV" + ToRoman(number - 4);

        if (number >= 1)
            return "I" + ToRoman(number - 1);

        return "INVALID";
    }
}

最佳答案

您可以将ToRoman()的代码放在主块中,然后从那里调用ToRoman(int number):

    public static void main(String args[]) {
        Scanner myKeyboard = new Scanner (System.in);
        System.out.println("Enter the integer: ");
        int number = myKeyboard.nextInt();
        System.out.println(ToRoman(number));
        myKeyboard.close();
    }


另一个问题是ToRoman(int number),将始终在输出末尾打印出“ INVALID”。因此,您可以通过在ToRoman(int number)中添加另一个基本案例条件来停止该行为,例如:

    if(number == 0) return "";


顺便说一句,为了能够调用ToRoman(int number),您需要将其定义为静态方法,或者创建该类的对象,然后调用该方法。

09-04 06:17