无法将Java.lang.String转换为int

无法将Java.lang.String转换为int,java,bluej,Java,Bluej,在我将罗马数字转换为阿拉伯数字的程序中,我遇到了错误 不兼容类型:java.lang.String无法转换为int 这是我的密码 if ( Character.isDigit(TextIO.peek()) ) { int arabic = TextIO.getlnInt(); try { RomanNumerals N = new RomanNumerals(arabic); TextIO.putln(N.toInt() + " = " + N.t

在我将罗马数字转换为阿拉伯数字的程序中,我遇到了错误

不兼容类型: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,错误被突出显示在“(罗马)”

这里的猜测中。。。但是,类RomanNumerics可能没有一个构造函数将字符串作为参数,如

public RomanNumerals(String r) {
这就是为什么这么说:

RomanNumerals N = new RomanNumerals(roman);

是不允许的。

我正在查看
TextIO.putln(N.toInt()+“=”+N.toString())并设想
N.toInt()
返回一个
int
,当您尝试向其添加
“=”
时,编译器会感到困惑


尝试
TextIO.putln(整数(N.toInt()).toString()+“=”+N.toString())

罗马数字
的构造函数必须期望一个
int
,您给它一个
字符串
。您需要将其转换为
int