2016-01-09 6 views
0

В моей программе, которая превращает римские цифры в арабские цифры я перебежать ошибкиjava.lang.String не может быть преобразован в целом

несовместимых типов: 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

Конструктор для 'RomanNumerals' должен ожидать' int', и вы даете ему 'String'. Вам нужно преобразовать его в 'int'. – resueman

ответ

0

Догадки здесь ... но, вероятно, ваш класс римские цифры не имеет конструктор, принимающий строку в качестве аргумента, как

public RomanNumerals(String r) { 

Вот почему называют это именно так:

RomanNumerals N = new RomanNumerals(roman); 

не допускается.

0

Я смотрю на TextIO.putln(N.toInt() + " = " + N.toString()); и воображая, что N.toInt() возвращает int и компилятор запутаться при попытке добавления " = " к нему.

Пробег: TextIO.putln(Integer(N.toInt()).toString() + " = " + N.toString());.

Смежные вопросы