将文本字段输入转换为整数时的NumberFormatException

时间:2012-12-12 21:23:07

标签: java jtextfield numberformatexception

我有JTextFiled。我将在其中键入一些整数值。

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

当我尝试传递我在文本字段中输入的整数时,我最终得到NumberFormatException

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

我该如何解决这个问题? (我将在所有实例中键入文本字段中的数字)。我尝试了try-catch块,但它仍然无效。

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

Integer.parseInt(String) doc说明

  

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

所以,绝对你传递的是一个不是数字表示的字符串。也许在String附加了一个尾随空格。请注意:由于前端和末尾的空格,无法解析2323。你总是可以用String.trim() 修剪空白。如果是这样的话。试试这个:

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

答案 2 :(得分:0)

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

解决方案

  1. 尝试通过Try/Catch/Finally块捕获异常并从中获取消息。
  2. 确保在JTextField中键入的内容是整数...简单:)

答案 3 :(得分:0)

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

建议您按照以下方式执行操作:

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.
}