java.lang.NumberFormatException: empty String

java, string

Solution

You should check your field before parse double:

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
   double AText = ParseDouble(angleAField.getText());
   double BText = ParseDouble(angleBField.getText());
   double CText = ParseDouble(angleCField.getText());
   double aText = ParseDouble(sideaField.getText());
   double bText = ParseDouble(sidebField.getText());
   double cText = ParseDouble(sidecField.getText());

// other code here same
}

double ParseDouble(String strNumber) {
   if (strNumber != null && strNumber.length() > 0) {
       try {
          return Double.parseDouble(strNumber);
       } catch(Exception e) {
          return -1;   // or some value to mark this field is wrong. or make a function validates field first ...
       }
   }
   else return 0;
}

Problem

The code below keeps giving a `java.lang.NumberFormatException: empty String`: ``` private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) { double AText = Double.parseDouble(angleAField.getText()); double BText = Double.parseDouble(angleBField.getText()); double CText = Double.parseDouble(angleCField.getText()); double aText = Double.parseDouble(sideaField.getText()); double bText = Double.parseDouble(sidebField.getText()); double cText = Double.parseDouble(sidecField.getText()); if (getMissing(angleAField.getText()) == false && getMissing(angleCField.getText()) == false) { //doesnt have angle C ,find Angle A double angleA = Math.round(Math.asin((Math.sin(BText) / bText) * aText)); angleAField.setText("" + angleA); } } public boolean getMissing(String Field) { try { if (Field.equals("")) { return false; // has number } } catch (NumberFormatException e) {} return true; } ``` Error: ``` Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1011) at java.lang.Double.parseDouble(Double.java:540) at sowhatstrig.trigFrame.jButton4ActionPerformed(trigFrame.java:520) at sowhatstrig.trigFrame.access$300(trigFrame.java:20) at sowhatstrig.trigFrame$4.actionPerformed(trigFrame.java:353) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) at java.awt.Component.processMouseEvent(Component.java:6505) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6270) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4861) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2719) at java.awt.Component.dispatchEvent(Component.java:4687) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:723) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:682) at java.awt.EventQueue$3.run(EventQueue.java:680) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:696) at java.awt.EventQueue$4.run(EventQueue.java:694) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:693) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) ```

Original source