从JTable空字符串错误中读取信息时出错

时间:2014-10-26 00:52:34

标签: java string jtable

以下代码是否有意义?我基本上试图从JTable中读取值并将它们转换为double。但是我遇到了以下错误。具体而言,第1567行中的错误为percentageValueDouble=Double.parseDouble(percentageValueString); 但我不明白错误是什么意思或如何解决它们。

这是源代码:

if((gradesTable.getModel().getValueAt(i, j)!=null)&&(gradesTable.getModel().getValueAt(i, j)!="")){
    percentageValueObject=gradesTable.getModel().getValueAt(i, j);
    percentageValueString=percentageValueObject.toString();
    percentageValueDouble=Double.parseDouble(percentageValueString);
    }
    else
        percentageValueDouble=(Double) null;

这是给出的错误:

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 Gradebook$13.mousePressed(Gradebook.java:1567)

1 个答案:

答案 0 :(得分:1)

所以得到的价值肯定不是双倍。

<强>原因

你绝对不会在单元格中加倍。

你可能有50%,10.5%或类似的东西。

你需要的是50,10.5。只需排除&#39;%&#39;。

P.S。当然原因是

您应该使用 equals()方法检查空字符串。

!gradesTable.getModel().getValueAt(i, j).equals("")

或者您也可以查看以下长度:

gradesTable.getModel().getValueAt(i, j).length()>0

修改

您正在使用 == 检查空字符串,因此即使字符串为空, if 块也在运行。所以问题将通过 equals()方法解决。