Я пытаюсь взять подстроку строки txt, а затем установить другую часть этой строки в значение, однако всякий раз, когда я пытаюсь установить напряжение [t] с двойным значением подстроки, I 'Получая пустую строку. Вот часть кода, где я получаю ошибку:java substring return empty
if(txt.substring(0,1).equals("1")) {
//Voltage button pressed(S3)
//=====================================================================
text3.setText(txt.substring(1));
voltage[t] = (Double.parseDouble(text3.getText()));
}
Кто-нибудь знает, почему эта ошибка будет происходить? Любая помощь будет оценена по достоинству. Благодаря!
Edit: Вот точное исключение я получаю:
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)
Ошибка возникает в строке 728
Кроме того, вот код, я использую, чтобы преобразовать Int и добавив "1". Микроконтроллер запрограммирован в C:
char *p, text[32];
int i = readADC(POT);
sprintf(text,"1%d", i);
p = text;
UartTxString(p); //Sends string out
Если 'txt' является строкой' 1', ваш оператор 'if' является истинным, а' text3' обновляется до строки, следующей за '1', то есть до пустой строки. Так что, возможно, 'txt' не содержит того, что вы думаете, что он делает, если вы считаете, что' text3' не будет пустым. – Andreas
@shmosel Надеюсь, что «1» «иначе наше понимание ошибки неверно. По мере того как OP * пытается принять значение после этой первой цифры для второй строки * –
Если я просто попытаюсь вывести txt.substring (1), я получаю правильное значение, отправленное в текстовое поле, однако оно просто не позволит я разобрал его в двойник. – TestyTest