嘿,当我尝试将字符串解析为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)
答案 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
,试图将其转换为某种数字(double
,int
等)。在这里:
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