java.lang.NumberFormatException: пустая строка

В приведенном ниже коде дается 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; } 

Ошибка:

 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) 

Вы должны проверить свое поле перед parsingом:

 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; } 

Строка, которую вы пытаетесь разобрать как двойную, пуста. Вам нужно проверить, возвращает ли метод getText () непустую строку, прежде чем пытаться выполнить parsing, потому что вы не можете разобрать двойную пустую строку.

  • Как получить первые n символов строки без проверки размера или выхода за пределы?
  • Проверить подстроку существует в строке в C
  • h: inputText, привязанный к свойству String, представляет пустую строку вместо null
  • Как получить ширину строки на Android?
  • Создайте случайную буквенно-цифровую строку в Cocoa
  • Преобразование строки в целое число на Android
  • Как извлечь имя файла из пути?
  • C # разделите строку, но сохраните раздельные символы / разделители
  • Как удалить недопустимые символы из путей и имен файлов?
  • Как добавить новую строку в datagridview программно
  • Как использовать sed / grep для извлечения текста между двумя словами?
  • Давайте будем гением компьютера.