NumberFormatException в реализации связанного списка - PullRequest
0 голосов
/ 06 декабря 2011

Я реализовал циклический список в Java.Код запрашивает ввод значений int, и я хочу завершить список ввода с помощью "END".Код работает, но выдает исключение времени выполнения: NumberFormatException.

try{
    while(true){
        newnode=new Node();
        oldnode.next=newnode;
        newnode.prev=oldnode;               
        System.out.print("Enter value:");
        try{
            ctrlstr=bfr.readLine();
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
        if (ctrlstr=="END") break;
        newnode.val=Integer.parseInt(ctrlstr);
        oldnode=newnode;                        
        i++;    
    }
}
catch(Exception ex){
    ex.printStackTrace();
}

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

Здесь:

if (ctrlstr=="END")

вы сравниваете строки, используя ==, который всегда проверяет идентичность ссылки. Вместо этого вы должны использовать equals:

if (ctrlstr.equals("END"))

или, возможно, (если вы хотите получить false результат, когда ctrlstr равен нулю)

if ("END".equals(ctrlstr))

Несколько дополнительных заметок:

  • Поймать Exception обычно плохая идея - вы должны поймать более конкретные исключения
  • Поймать исключение и продолжить в любом случае после печати это обычно плохая идея
  • Ваш код будет более читабельным, если вы сделаете соответствующий отступ
  • Ваш код будет более читабельным, если вы всегда используете фигурные скобки для if операторов и т. Д.
0 голосов
/ 06 декабря 2011

Try ctrlstr.equals("END") вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...