2016-12-03 6 views
0

私はキャンバスにマークをつけてペンを動かすプログラムを作っています。現時点では、文字列を整数に変換するクラス "MyInput"(私のメソッドでは "reader"と呼ばれていたクラス)のconvertToIntegerというメソッドがあります。整数をチェックして、ターミナルでエラーメッセージを作成する - プログラムをクラッシュさせないでください

public int convertToInteger(String word) 
    { 
     return Integer.parseInt(word); 
    } 

これを私の方法に結びつけ、文字列入力を整数に変換しました。

case "move": 
    int distance = reader.convertToInteger(command.get(1)); 
    brush.move(distance); 
    break; 

私のプログラムでは、「移動100」と入力してブラシを100ピクセル移動できます。非整数を入力しようとすると、現在の状態のコードが例外エラーでクラッシュします。例えば"ここに移動"。

public boolean isAnInteger(String word) 
    { 
     boolean ok; 
     try { 
      Integer.parseInt(word); 
      ok = true; 
     } 
     catch(NumberFormatException ex) { 
      // Non-integer string. 
      ok = false; 
     } 
     return ok; 
    } 

はその後、私のコードでそれを実装してみました:

は「MyInput」クラスでは、私はそれはしてみてください」と「キャッチ」を使用して、整数やないかどうかを確認し、ブールメソッドを作成しました

case "move": 
    int distance = reader.convertToInteger(command.get(1)); 
    if (reader.isAnInteger(command.get(1)) == true){ 
       brush.move(distance); 
    } 
     else { 
       printError(); 
    } 
    break; 

私は、コードを実行し、端末で "ここに移動"のようなものを入力すると、私のコードを迂回するように例外がスローされますが、 "move 100"またはその他の有効な整数が入力されます。

提案がありますか?前もって感謝します。

答えて

0

指示が間違っています。あなたが解析しようとしているときに、それを解析できるかどうかをチェックしています。まず最初にチェックしてから、解析してみてください。

+0

ハ...そうしました。校長エラー。答えをありがとう。アップフォワードされ、答えられました。 – Garwaire

関連する問題