Ich habe eine Split-Funktion geschrieben, deren Konstruktor ein String-Objekt (For Example: 21.316621 87.01393 9830.686907)
. Dann teilt es es in drei Teile mit Split() -Funktion. Konvertiert dann diese drei neuen String-Objekte in drei primitive Double-Typen. Ich möchte einige Rechenoperation auf diesen doppelten Werte durchzuführen, aber es Exception als following--Nummer Format Ausnahme in Java
Exception in thread "main" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1842)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
Split-Funktion zeigt als following--
public class Split {
public Split(String str){
Double[] lla = new Double[3];
String[] parts=str.split("\t");
lla[0] = Double.parseDouble(parts[0]);
lla[1] = Double.parseDouble(parts[1]);
lla[2]= Double.parseDouble(parts[2]);
lla[0]+=123.567;
lla[1]+=12.456;
lla[2]+=76.5678;
System.out.println(lla[0]);
System.out.println(lla[1]);
System.out.println(lla[2]);
System.out.println();
}
}
Bitte helfen Sie mir aus diesem problem.thanks
Was erwarten Sie, wenn Sie zwei oder mehr Tabs verwenden, um jede Zahl zu begrenzen? (Dies ist Ihr Problem hier) – Tom
Verwenden Sie Ihren Debugger. Fügen Sie System.out.println() in dem Code hinzu, um das Problem zu finden. Die Nachricht ist ziemlich klar: einer Ihrer Teile ist tatsächlich eine leere Zeichenfolge. Dies ist Debugging 101. –
Sind Sie sicher, dass Sie eine echte Zeichenfolge an Ihre Funktion übergeben? Und was ist mit "\ t"? Bist du dir sicher, dass deine Strings durch "\ t" und nicht durch Leerzeichen getrennt sind? – pooyan