在我将罗马数字变成阿拉伯数字的程序中,我遇到了错误
不兼容的类型:java.lang.String无法转换为int
这是我的代码
if ( Character.isDigit(TextIO.peek()) ) {
int arabic = TextIO.getlnInt();
try {
RomanNumerals N = new RomanNumerals(arabic);
TextIO.putln(N.toInt() + " = " + N.toString());
}
catch (NumberFormatException e) {
System.out.println("Invalid input.");
System.out.println(e.getMessage());
}
}
else {
String roman = TextIO.getln();
try {
RomanNumerals N = new RomanNumerals(roman);
System.out.println(N.toString() + " = " + N.toInt());
}
catch (NumberFormatException e) {
System.out.println("Invalid input.");
System.out.println(e.getMessage());
}
}
我正在使用BlueJ并且错误被突出显示在"(罗马)"
答案 0 :(得分:0)
在这里猜猜......但是你的类RomanNumerals可能没有把字符串作为参数的构造函数,如
public RomanNumerals(String r) {
这就是为什么这样称呼它:
RomanNumerals N = new RomanNumerals(roman);
不允许。
答案 1 :(得分:0)
我正在查看TextIO.putln(N.toInt() + " = " + N.toString());
并想象N.toInt()
会返回int
,当您尝试向其添加" = "
时编译器会感到困惑。
试试TextIO.putln(Integer(N.toInt()).toString() + " = " + N.toString());
。