Java 整数到罗马数字。我不明白如何将这些方法调用回main。我被困在这里,需要一些帮助 publicstaticvoidmain(字符串[]args){ //给定扫描仪作为输入,提示用户输入1到3999之间的数字。 //检查以确保号码在范围内,并提供错误消息,直到 //用户提供范围内的值。将用户输入的数字返回给 //呼叫程序。 专用静态int-promptUserForNumber(扫描仪扫描程序){ 扫描仪键盘=新扫描仪(System.in); System.out.print(“请输入一个介于1和3999之间的数字(0表示退出):”; int number=Keyboard.nextInt(); int number1=数字; 字符串罗马=”; while(399号){ System.out.println(“错误!数字必须介于1和3999之间”); number=键盘.nextInt(); number1=数字; } } 专用静态转换器数字(整数){ 而(数量>=1000){ 罗马+=“M”; 数量-=1000; } 而(数量>=900){ 罗马+=“厘米”; 数目-=900; } 而(数量>=500){ 罗马+=“D”; 数量-=500; } 而(数量>=400){ 罗马+=“CD”; 数目-=400; } 而(数量>=100){ 罗马+=“C”; 数字-=100; } 而(数字>=90){ 罗马+=“XC”; 数目-=90; } 而(数量>=50){ 罗马+=“L”; 数目-=50; } 而(数字>=40){ 罗马+=“XL”; 数目-=40; } 而(数字>=10){ 罗马+=“X”; 数字-=10; } 而(数字>=9){ 罗马+=“九”; 数字-=9; } 而(数字>=5){ 罗马+=“V”; 数字-=5; } 而(数字>=4){ 罗马+=“四”; 数字-=4; } 而(数字>=1){ 罗马+=“我”; 数字-=1; } System.out.println(罗马数字中的number1+“是”+罗马); } } //给定用于“1”、“5”和“10”位置的数字和罗马数字, //返回该数字的相应罗马数字。例如,如果数字为 //convert是49,我们称之为ConvertDigitOnumeral两次。第一个电话是: //ConvertDigitOnumeral(9,‘I’、‘V’、‘X’) //并将返回值“IX”。第二个电话是: //convertDigitToNumeral(4,'X','L','C') //并将返回一个值“XL”。把这些放在一起,我们会发现49个是最合适的 //罗马数字XLIX。 //从上面的ConvertNumberToNumeric调用此方法以将整数转换为 //罗马数字。 私有静态convertDigitOnumeral(整数位数、字符1、字符5、字符10){ //填塞 }

Java 整数到罗马数字。我不明白如何将这些方法调用回main。我被困在这里,需要一些帮助 publicstaticvoidmain(字符串[]args){ //给定扫描仪作为输入,提示用户输入1到3999之间的数字。 //检查以确保号码在范围内,并提供错误消息,直到 //用户提供范围内的值。将用户输入的数字返回给 //呼叫程序。 专用静态int-promptUserForNumber(扫描仪扫描程序){ 扫描仪键盘=新扫描仪(System.in); System.out.print(“请输入一个介于1和3999之间的数字(0表示退出):”; int number=Keyboard.nextInt(); int number1=数字; 字符串罗马=”; while(399号){ System.out.println(“错误!数字必须介于1和3999之间”); number=键盘.nextInt(); number1=数字; } } 专用静态转换器数字(整数){ 而(数量>=1000){ 罗马+=“M”; 数量-=1000; } 而(数量>=900){ 罗马+=“厘米”; 数目-=900; } 而(数量>=500){ 罗马+=“D”; 数量-=500; } 而(数量>=400){ 罗马+=“CD”; 数目-=400; } 而(数量>=100){ 罗马+=“C”; 数字-=100; } 而(数字>=90){ 罗马+=“XC”; 数目-=90; } 而(数量>=50){ 罗马+=“L”; 数目-=50; } 而(数字>=40){ 罗马+=“XL”; 数目-=40; } 而(数字>=10){ 罗马+=“X”; 数字-=10; } 而(数字>=9){ 罗马+=“九”; 数字-=9; } 而(数字>=5){ 罗马+=“V”; 数字-=5; } 而(数字>=4){ 罗马+=“四”; 数字-=4; } 而(数字>=1){ 罗马+=“我”; 数字-=1; } System.out.println(罗马数字中的number1+“是”+罗马); } } //给定用于“1”、“5”和“10”位置的数字和罗马数字, //返回该数字的相应罗马数字。例如,如果数字为 //convert是49,我们称之为ConvertDigitOnumeral两次。第一个电话是: //ConvertDigitOnumeral(9,‘I’、‘V’、‘X’) //并将返回值“IX”。第二个电话是: //convertDigitToNumeral(4,'X','L','C') //并将返回一个值“XL”。把这些放在一起,我们会发现49个是最合适的 //罗马数字XLIX。 //从上面的ConvertNumberToNumeric调用此方法以将整数转换为 //罗马数字。 私有静态convertDigitOnumeral(整数位数、字符1、字符5、字符10){ //填塞 },java,roman-numerals,Java,Roman Numerals,} 我必须按照这些注释来做一个整数到罗马数字的程序。我按照这些方法来做,但我不知道如何将东西发送回main,我不理解私有静态convertDigitOnumeral与convertNumberToNumeral。我真的很困惑。简短的回答是肯定的,你必须在main方法中放一些东西,即使它和调用其他方法一样短。大多数人会主张在主方法中使用尽可能少的内容,并将大部分程序放在其他方法中,这就是设置的方式。从您给出的描述来看,您可能希望立即调用promptUserForNumber。一旦他们输入了某项内容

}
我必须按照这些注释来做一个整数到罗马数字的程序。我按照这些方法来做,但我不知道如何将东西发送回main,我不理解私有静态convertDigitOnumeral与convertNumberToNumeral。我真的很困惑。

简短的回答是肯定的,你必须在main方法中放一些东西,即使它和调用其他方法一样短。大多数人会主张在主方法中使用尽可能少的内容,并将大部分程序放在其他方法中,这就是设置的方式。从您给出的描述来看,您可能希望立即调用promptUserForNumber。一旦他们输入了某项内容,然后检查该数字是否符合指导原则。这可能是您需要编写一个附加方法来实现的。验证条目后,您可以调用其余的方法来执行程序的预期目的。祝你好运

顺便说一句,您展示的所有方法签名(除了main)都不是合法的Java,因为它们缺少返回类型。我必须导入给我的文件。方法签名是原始的。我使用eclipse,并且这些方法都有错误。你能帮我开始吗?我更新了代码,但我不确定我所做的是否正确
public static void main(String[] args) {




// Given a Scanner as input, prompts the user to input a number between 1 and 3999.
// Checks to make sure the number is within range, and provides an error message until
// the user provides a value within range.  Returns the number input by the user to the
// calling program.
private static int promptUserForNumber(Scanner inScanner) {
    Scanner Keyboard = new Scanner(System.in);
    System.out.print("Please enter a number between 1 and 3999 (0 to quit): ");
    int number = Keyboard.nextInt();
    int number1 = number; 

    String roman="";


    while(number<=0 || number>3999){
        System.out.println("ERROR!  Number must be between 1 and 3999");
        number = Keyboard.nextInt();
        number1=number;
        }

}

private static convertNumberToNumeral(int number) {
    while(number>=1000){
        roman += "M";
        number-=1000;
    }

    while(number>=900){
        roman += "CM";
        number-=900;
    }

    while(number>=500){
        roman += "D";
        number-=500;
    }

    while(number>=400){
        roman += "CD";
        number-=400;
    }

    while(number>=100){
        roman += "C";
        number-=100;
    }

    while(number>=90){
        roman += "XC";
        number-=90;
    }

    while(number>=50){
        roman += "L";
        number-=50;
    }

    while(number>=40){
        roman += "XL";
        number-=40;
    }

    while(number>=10){
        roman += "X";
        number-=10;
    }

    while(number>=9){
        roman += "IX";
        number-=9;
    }

    while(number>=5){
        roman += "V";
        number-=5;
    }

    while(number>=4){
        roman += "IV";
        number-=4;
    }

    while(number>=1){
        roman += "I";
        number-=1;
    }

    System.out.println(number1 + " in Roman numerals is " + roman);
}
}

// Given a digit and the Roman numerals to use for the "one", "five" and "ten" positions,
// returns the appropriate Roman numeral for that digit.  For example, if the number to
// convert is 49 we would call convertDigitToNumeral twice.  The first call would be:
//     convertDigitToNumeral(9, 'I','V','X')
// and would return a value of "IX".  The second call would be:
//     convertDigitToNumeral(4, 'X','L','C')
// and would return a value of "XL".  Putting those together we would see that 49 would be the
// Roman numeral XLIX.
// Call this method from convertNumberToNumeral above to convert an entire number into a 
// Roman numeral.
private static convertDigitToNumeral(int digit, char one, char five, char ten) {
    // Fill in the body
}