Java 检查JTextField是否为空时出现NumberFormatException错误
我在运行时遇到Java 检查JTextField是否为空时出现NumberFormatException错误,java,numberformatexception,Java,Numberformatexception,我在运行时遇到NumberFormatException错误。使用if语句检查JTextField是否为空时会导致此错误 private void btnAddNumberMouseClicked(java.awt.event.MouseEvent evt) { numberArray.add(Integer.parseInt(txtNumber.getText())); if(!(txt
NumberFormatException
错误。使用if语句检查JTextField
是否为空时会导致此错误
private void btnAddNumberMouseClicked(java.awt.event.MouseEvent evt) {
numberArray.add(Integer.parseInt(txtNumber.getText()));
if(!(txtNumber.getText().equals(""))){
scoresList.setText("");
for (int i = 0; i < numberArray.size(); i++) {
scoresList.append(Integer.toString(numberArray.get(i)) + "\n");
}
}
txtNumber.setText("");
private void btnAddNumberMouseClicked(java.awt.event.MouseEvent evt){
add(Integer.parseInt(txtNumber.getText());
if(!(txtNumber.getText()等于(“”)){
scoresList.setText(“”);
对于(int i=0;i
可能需要更改此选项:
Integer.toString()
像这样的事情
String.valueOf()
或者,您可以只在textArea中追加整数,而不将其强制转换为字符串
另外,尝试使用.isEmpty()方法而不是.equals()可能需要更改:
Integer.toString()
像这样的事情
String.valueOf()
或者,您可以只在textArea中追加整数,而不将其强制转换为字符串
另外,请尝试使用.isEmpty()方法而不是.equals()错误在下面一行:
numberArray.add(Integer.parseInt(txtNumber.getText()));
如果您添加了stacktrace(您收到的错误代码),则回答代码会更容易。它看起来类似于以下内容:
Exception in thread "main" java.lang.NumberFormatException: For input string: "6 "
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
在本例中,stacktrace的关键部分是第一行。它指出是什么输入导致了问题。stacktrace的其余部分确切地指出是什么导致了异常被抛出
如果你用stacktrace更新这个问题,我会完全回答你的问题。现在,让我猜猜有什么帮助
您的问题可能由三种情况引起:
null
字符串
是前导字符或后跟您看不到或为空的白色字符字符串
根本不可解析numberArray.add(Integer.parseInt(
(txtNumber.getText().trim().equals("") ?
"0"
:
txtNumber.getText().trim()
));
如果它仍然抛出异常,请给我一个注释,并用stacktrace更新问题。错误在下面一行:
numberArray.add(Integer.parseInt(txtNumber.getText()));
如果您添加了stacktrace(您收到的错误代码),则回答代码会更容易。它看起来类似于以下内容:
Exception in thread "main" java.lang.NumberFormatException: For input string: "6 "
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
在本例中,stacktrace的关键部分是第一行。它指出是什么输入导致了问题。stacktrace的其余部分确切地指出是什么导致了异常被抛出
如果你用stacktrace更新这个问题,我会完全回答你的问题。现在,让我猜猜有什么帮助
您的问题可能由三种情况引起:
null
字符串
是前导字符或后跟您看不到或为空的白色字符字符串
根本不可解析numberArray.add(Integer.parseInt(
(txtNumber.getText().trim().equals("") ?
"0"
:
txtNumber.getText().trim()
));
如果它仍然抛出异常,请给我一个注释,并使用stacktrace更新问题。第一行解析与您测试的值相同的值,然后使用
“”
。想想那里的顺序。我将解析值的那一行放在FOR循环上方的IF语句中,一切都很正常。谢谢@ElliottFrisch:)@MosDef我添加了答案。请添加stacktrace并告诉我我的解决方案是否有效。如果我的答案解决了您的问题,可能会重复@MosDef,请谅解se通过单击问题分数下方的灰色勾号将其标记为解决方案。第一行解析的值与您测试的值相同,然后与“”
。想想那里的顺序。我将解析值的那一行放在FOR循环上方的IF语句中,一切都很正常。谢谢@ElliottFrisch:)@MosDef我添加了答案。请添加stacktrace并告诉我我的解决方案是否有效。如果我的答案解决了您的问题,可能会重复@MosDef,请谅解se单击问题分数下方的灰色勾号,将其标记为解决方案。