Ich versuche, einen Teilstring eines Strings txt und dann einen anderen Teil dieses Strings auf einen Wert, aber immer wenn ich versuche, Spannung [t] mit dem doppelten Wert des Teilstrings, I bekomme einen leeren Stringfehler. Hier ist der Teil des Codes, wo ich den Fehler bekomme:Java Teilzeichen zurückgeben leer
if(txt.substring(0,1).equals("1")) {
//Voltage button pressed(S3)
//=====================================================================
text3.setText(txt.substring(1));
voltage[t] = (Double.parseDouble(text3.getText()));
}
Wer weiß, warum dieser Fehler auftreten würde? Jede Hilfe wäre willkommen. Vielen Dank!
Edit: Hier die genaue Ausnahme Ich erhalte:
Caused by: java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at sun.misc.FloatingDecimal.parseDouble(Unknown Source)
at java.lang.Double.parseDouble(Unknown Source)
at UartApp$11.run(UartApp.java:728)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
Der Fehler tritt auf der Leitung 728
Auch hier ist der Code, den ich mit dem int und das Hinzufügen der konvertieren "1". Der Mikrocontroller ist in C programmiert:
char *p, text[32];
int i = readADC(POT);
sprintf(text,"1%d", i);
p = text;
UartTxString(p); //Sends string out
Wenn 'txt' die Zeichenkette' 1' ist, ist Ihre 'if' Anweisung wahr und' text3' wird auf die Zeichenkette nach der '1' aktualisiert, d. H. Auf eine leere Zeichenkette. Vielleicht enthält 'txt' also nicht, was Sie denken, wenn Sie denken,' text3' wäre nicht leer. – Andreas
@smossel Hoffentlich '' 1 ''sonst ist unser Verständnis des Fehlers falsch. Wie pro OP * versucht, den Wert nach der ersten Ziffer für die zweite Zeichenfolge zu nehmen * –
Wenn ich versuche, txtstring (1) auszugeben, bekomme ich den richtigen Wert in das Textfeld geschrieben, aber es wird einfach nicht lassen Ich analysiere es zu einem Doppel. – TestyTest