3

このコードは、findActions() メソッドからの入力データを検証する必要があります。

try {
    System.out.println(findActions(lookingArea.substring(0, right)));// always printing valid number string
    Integer.parseInt(findActions(lookingArea.substring(0, right)));// checking for number format
}
catch(NumberFormatException exc) {
    System.out.println(exc);
}

しかし、私はいつもjava.lang.NumberFormatException: For input string: "*number*" それがとても奇妙だと思っていますSystem.out.println(findActions(lookingArea.substring(0, right)));

私は*number*10.0のようになります

4

3 に答える 3

9

Integer.parseInt.キャラクターは期待していません。に変換できることが確実な場合intは、次のいずれかを実行します。

  1. ".0"解析する前に文字列の末尾を削除するか、または
  2. を呼び出しDouble.parseDouble、結果を にキャストしintます。

上記のリンクされた Javadoc を引用します。

文字列内の文字はすべて 10 進数でなければなりませんが、最初の文字は負の値を示す ASCII マイナス記号 '-' ('\u002D') または ASCII プラス記号 '+' ('\u002B') にすることができます。正の値を示します。

于 2013-10-10T18:26:19.683 に答える
3

10.0は整数ではありません。代わりに、次を使用できます。

int num = (int) Double.parseDouble(...);
于 2013-10-10T18:26:55.790 に答える