我想我有正确的代码来进行转换(感谢用户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)总是会在输出的末尾打印出"无效"。因此,您可以通过在 ToRoman(int 数字)中添加另一个基本情况条件来阻止该行为,例如:
if(number == 0) return "";
顺便说一下,为了能够调用 ToRoman(int number),您需要将其定义为静态方法,或者创建类的对象,然后调用该方法。
要让它在你的主类中运行,你需要实例化它,然后调用你想要运行的方法,所以你可能希望在你的主类中出现这样的东西
romannumeralconversion rnc = new romannumeralconversion();
System.out.println(rnc.ToRoman());
此外,您的number
变量没有分配类型,因为您正在阅读下一个 int,请像这样将int
放在前面int number = myKeybaord.nextInt()
您还需要将以下 import 语句放在类文件的最顶部以导入Scanner
类(刚刚意识到您确实有这个)
import java.util.Scanner;
请注意,惯例是类以大写字母开头,方法应以每个内部单词的第一个字母大写命名。请参阅 Java 命名会议。