解析错误 - 线程“AWT-EventQueue-0”中的异常

时间:2014-01-12 16:58:52

标签: java parsing

嘿,当我尝试将字符串解析为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)

2 个答案:

答案 0 :(得分:1)

  

线程中的异常“AWT-EventQueue-0”java.lang.NumberFormatException:empty String

textField.getText()

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

您应该在执行点击逻辑

之前验证此方案

答案 1 :(得分:0)

此:

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