Java新手,请帮助运行我的程序!我的任务是写一个将整数转换成罗马数字的程序

Java新手,请帮助运行我的程序!我的任务是写一个将整数转换成罗马数字的程序,java,types,java.util.scanner,main,roman-numerals,Java,Types,Java.util.scanner,Main,Roman Numerals,我想我有适当的代码来进行转换(感谢用户Matt Bryant的帮助),但我现在不知道如何继续。到目前为止,我学到了如何在主体(publicstaticvoidmain(stringargs[])中键入代码,但是我得到帮助的这段代码似乎不在main方法中。有人能帮我运行这个代码吗?:)(还有一个错误,我的扫描仪无法解析为类型/变量)。我知道主方法中没有写入任何内容,但这只是因为我不确定此时该做什么 import java.util.Scanner; public class romannumer

我想我有适当的代码来进行转换(感谢用户Matt Bryant的帮助),但我现在不知道如何继续。到目前为止,我学到了如何在主体(publicstaticvoidmain(stringargs[])中键入代码,但是我得到帮助的这段代码似乎不在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";
    }
}
import java.util.Scanner;
公共类转换{
公共静态void main(字符串参数[]){
}
公共字符串ToRoman(){
扫描仪myKeyboard=新扫描仪(System.in);
System.out.println(“输入整数:”);
number=myKeyboard.nextInt();
myKeyboard.close();
返回托罗曼(编号);
}
公共字符串ToRoman(整数){
如果((编号<1 | |(编号>3999)))
返回“无效”;
如果(数字>=1000)
返回“M”+ToRoman(数字-1000);
如果(编号>=900)
返回“CM”+ToRoman(编号-900);
如果(数字>=500)
返回“D”+ToRoman(编号-500);
如果(数字>=400)
返回“CD”+ToRoman(编号-400);
如果(数字>=100)
返回“C”+ToRoman(数字-100);
如果(数字>=90)
返回“XC”+ToRoman(数字-90);
如果(数字>=50)
返回“L”+ToRoman(数字-50);
如果(数字>=40)
返回“XL”+ToRoman(数字-40);
如果(数字>=10)
返回“X”+托罗曼(数字-10);
如果(数字>=9)
返回“IX”+托洛曼(数字-9);
如果(数字>=5)
返回“V”+ToRoman(数字-5);
如果(数字>=4)
返回“IV”+托罗曼(数字-4);
如果(数字>=1)
返回“I”+ToRoman(数字-1);
返回“无效”;
}
}

要使它在主类中运行,您需要实例化它,然后调用要运行的方法,因此您可能需要在主类中使用类似的方法

romannumeralconversion rnc = new romannumeralconversion();
System.out.println(rnc.ToRoman());
另外,您的
number
变量没有指定类型,当您在读取下一个int时,将
int
放在前面,如下所示
int number=myKeybaord.nextInt()

您还需要将下面的import语句放在类文件的最顶部,以导入
Scanner
类(刚刚意识到您有这个)


请注意,惯例是类以大写字母开头,方法的命名应以每个内部单词的首字母大写。请参阅java。

您可以将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)中添加另一个基本情况条件来停止该行为,如:


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

方法字符串toRoman需要返回一个字符串,但返回的是一个int值,而字符串是toRoman(number);?在扫描代码下,我写下了返回托罗曼(编号);谢谢,我按照你说的把赋值整型放在数字上,但是我仍然收到一条错误消息,说扫描仪无法解析为一个类型。太好了,非常感谢你。最后一件事,该程序正在运行,但每当我输入一个整数,它会给我正确的答案,后面跟着“无效”。例如:我输入整数3,它输出IINVALID。我需要一个特定的else if语句吗?实际上我没有意识到,但用户Niki回答了这个问题!
    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();
    }
    if(number == 0) return "";