我想我有适当的代码可以进行转换(感谢用户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),您需要将其定义为静态方法,或者创建该类的对象,然后调用该方法。