2011-12-06 17 views
0

私はJavaで循環リストを実装しました。コードでintの値を入力するよう尋ねられ、"END"で入力リストを終了したいとします。コードは動作しますが、実行時例外をスローします:NumberFormatException。ここで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(); 
} 
+0

どういうところですか?いつNumberFormatExceptionをスローするのですか? –

答えて

3

:あなたは常に参照のアイデンティティをチェック==を、使用して文字列を比較している

if (ctrlstr=="END") 

。代わりに、あなたはequalsを使用する必要があります。

if (ctrlstr.equals("END")) 

または多分を

if ("END".equals(ctrlstr)) 

いくつかの余分なノート(ctrlstrがnullのとき、あなただけのfalse結果をしたい場合):

  • Exceptionをキャッチですが通常は悪い考えです。より具体的な例外をキャッチする必要があります。
  • キャッチ例外をINGのと、それを印刷した後、とにかく続けることは通常あなたのコードは、あなたが
  • はあなたのコードが読みやすくなり、適切にインデントする場合より読みやすくなります
  • 悪い考えであるかのif文など
  • のためのあなた 常に使用ブレース
+0

こんにちはジョン.....ありがとう、私はそれを意味する!それはかなりの時間の間私を下っていた... :) – stonecoldjha

0

代わりに ctrlstr.equals("END")を試してください。

+0

ありがとう!!私はそれをし、それは働いた! – stonecoldjha

関連する問題