【问题标题】:Parsing error - Exception in thread "AWT-EventQueue-0"解析错误 - 线程“AWT-EventQueue-0”中的异常
【发布时间】:2014-01-12 16:58:52
【问题描述】:

嘿,当我尝试将字符串解析为 double 时出现错误...我的代码:

....
textField.setVisible(true);
double number1 = Double.parseDouble(textField.getText()); ....

我的错误:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String
    at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
    at java.lang.Double.parseDouble(Unknown Source)
    at zadanieGwiazdka.Ramka$2.actionPerformed(Ramka.java:126)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

【问题讨论】:

  • 删除了不必要的堆栈跟踪

标签: java parsing


【解决方案1】:

线程“AWT-EventQueue-0”中的异常 java.lang.NumberFormatException: 空字符串

textField.getText()

返回空白String,没有输入任何内容

您应该在执行点击逻辑之前验证这种情况

【讨论】:

    【解决方案2】:

    这个:

    Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String
    

    建议您有一个空的String,试图将其转换为某种数字(doubleint 等)。这边:

    double number1 = Double.parseDouble(textField.getText());

    是问题。我建议仅在对此进行一些基本检查后进行转换:

    textField.getText()
    

    例如:

    double number1;
    String temp = textField.getText();
    if("".equals(temp)){
        number1 = 0.0;//some default value
    }
    else{
        number1 = Double.parseDouble(textField.getText()); 
    }
    

    我建议对任何不是数字的字符也进行其他检查。我建议查看this regex solution

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-06
      相关资源
      最近更新 更多