我有JTextFiled
。我将在其中键入一些整数值。
我有另一个名为getMyAge(int age)
的方法,它需要int
作为参数。
当我尝试传递我在文本字段中输入的整数时,我最终得到NumberFormatException
。
getMyAge(Integer.parseInt(txtFiled.getText()));
我该如何解决这个问题? (我将在所有实例中键入文本字段中的数字)。我尝试了try-catch块,但它仍然无效。
答案 0 :(得分:1)
您可以尝试打印txtFiled.getText()
的内容,也许您可以尝试将其替换为txtFiled.getText().trim()
,因为额外的空白空间很容易导致问题。
答案 1 :(得分:0)
Integer.parseInt(String) doc说明
如果字符串不包含可解析的字符串,则会抛出NumberFormatException 整数。
所以,绝对你传递的是一个不是数字表示的字符串。也许在String附加了一个尾随空格。请注意:由于前端和末尾的空格,无法解析23
或23
。你总是可以用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中输入的内容无法解析为整数。
Try/Catch/Finally
块捕获异常并从中获取消息。答案 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.
}