0

我有一个JTextFiled. 我将在其中输入一些整数值。

我有另一种方法getMyAge(int age),它需要 aint作为参数。

NumberFormatException当我尝试传递我在文本字段中键入的整数时,我最终得到了一个,。

                    getMyAge(Integer.parseInt(txtFiled.getText()));

我怎样才能解决这个问题 ?(在所有情况下,我都会在文本字段中输入一个数字)。我尝试了 try-catch 块,但它仍然不起作用。

4

4 回答 4

1

您可以尝试打印的内容,txtFiled.getText()也许您可​​以尝试替换它,txtFiled.getText().trim()因为额外的空白空间很容易导致问题。

于 2012-12-12T21:25:32.673 回答
0

Integer.parseInt(String)文档指出

它会抛出 NumberFormatException - 如果字符串不包含可解析的整数。

所以,最肯定的是,您传递的字符串不是数字的表示形式。也许有一个尾随空格附加到字符串。请注意 : 23or23由于前面和结尾处的空格而无法解析。你总是可以String.trim(). 如果是这样的话。试试这个:

                getMyAge(Integer.parseInt(txtFiled.getText().trim()));
于 2012-12-12T21:26:20.950 回答
0

这意味着在parseInt, the exception _NumberFormatException_ is fired, if the string does not contain a parsable integer.JTextField 中键入的内容无法解析为整数。

解决方案

  1. 尝试通过块捕获异常Try/Catch/Finally并从中获取消息。
  2. 确保在 JTextField 中输入的是一个整数......简单:)
于 2012-12-12T21:29:27.013 回答
0

在将其设置为 setMyAge 方法之前,您应该检查文本字段是否包含数字。

建议您执行以下操作:

try {
  setMyAge(Integer.parseInt(txtFiled.getText().trim()));
} catch (NumberFormatException ne) {
  setMyAge(0); // you may remove this line if you doesn't want to set anything.
}
于 2012-12-12T21:29:35.500 回答