当前位置: 首页 > 知识库问答 >
问题:

检查JTextField是否为空时出现NumberFormatException错误

百里业
2023-03-14

我在运行时遇到一个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("");

共有2个答案

池宸
2023-03-14

错误如下所示:

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更新这个问题,我会完全回答你的问题。现在,让我猜猜有什么可能会有帮助。

您的问题可能由三种情况引起:

  1. 您正在尝试解析null
  2. 您的字符串是前导或后跟的白色字符,您看不到或是空的,
  3. 字符串根本不可解析。

我认为这是第二种选择,因为否则你会从stacktrace中注意到问题。

解决方案可能是:

numberArray.add(Integer.parseInt(
    (txtNumber.getText().trim().equals("") ?
       "0"
     :
       txtNumber.getText().trim()
));

如果它仍然抛出异常,请给我一个评论,并用stacktrace更新问题。

巫马劲
2023-03-14

可能想改变这一点:

Integer.toString()

像这样的事情

String.valueOf()

或者,您可以在文本区域中添加整数,而不将其强制转换为字符串。

也试着使用。isEmpty()方法而不是。等于

 类似资料:
  • 问题内容: 所以我知道这是一个很普遍的问题,已经找到了解决方案。但是,当我尝试这样做时,它无法正常工作。 我的JTextField为空,并且未启用该按钮。当我在文本字段中写入内容时,该按钮未启用。 因此,我的程序应每秒检查一次此字段是否为空。只要有人在文本字段中写入内容,就应启用该按钮。^^ 问题答案: 为此,您需要在中添加更改侦听器(一个响应文本更改的侦听器),并且在内,您需要根据是否为空将其更

  • 我有一个com。谷歌。云存储Blob对象。我可以在java代码中下载和上传这个对象,但我想在启动进程之前检查一下是否存在某些东西。简而言之,这里是我的代码中给我带来问题的部分。 Eclipse似乎无法在IDE中捕获它。示例似乎也遵循此布局。有人知道发生了什么事吗? 我正在Linux环境机器上运行。(它在云功能方面也失败了)。我正在使用Java 11运行时。

  • 问题内容: 有什么最短的方法吗? 如果我是正确的,应该用? 有可能,并且在一行中写(也许是数组?)而不重复? 问题答案: 如果要测试变量是否 确实 是,请使用标识运算符: 如果要检查是否未设置变量: 或者,如果变量不为空,则为空字符串,零,..: 如果要测试变量是否不是空字符串,也将足够:

  • 问题内容: 我不能成为“匿名者”吗?它可以为空或的值 。 问题答案: 如果变量已初始化,将返回true。如果您的表单字段的值设置为,则提交该表单时,尽管其中可能没有任何数据,但该值将始终为“设置”。 而是测试字符串并测试其长度

  • 我想检查变量是否为空: 此代码基于:https://www.thomasmaurer.ch/2010/07/powershell-check-variable-for-null/,但这不起作用。 我该怎么解决这个问题? ps。堆栈中有东西