У меня возникает эта ошибка:Ошибка Java.lang.NumberFormatException
На выходе показаны 3 C, которые из программы. Я сам набрал «12.34».
Ожидаемый выход должен был быть:
C
C
C
12.34
12.34 is the first string
12.34 is the second string
12,34 должен был быть преобразован в два раза, но я получил странные символы вместо этого.
я не смог найти решение. Я пробовал разные методы, но у меня по-прежнему была такая же ошибка.
Вот моя программа:
int ch = 0;
int i = 0;
int counter = 0;
int sum = 0;
double[] conArray = new double[3];
//string[] conArray = new string[3];
double dataDbl;
String dataStr = null;
double data = 0;
String s = "C";
String t = "Hello";
//StringBuffer sb = new StringBuffer();
//String con = "C";
////System.out.println("Starting!");
System.out.println("C");
buffer.setLength(0);
System.out.println("C");
buffer.setLength(0);
System.out.println("C");
buffer.delete(0,buffer.length());
while (i < 300) {
ch = inStream.read();
if ((ch == '\r') || (ch == '\n')) {
i = 300;
}
buffer.append((char)ch);
i++;
}
dataStr = buffer.toString();
dataDbl = Double.parseDouble(dataStr.trim());
conArray[counter] = dataDbl;
outStream.writeChars(dataStr);
System.out.println(" is the first string");
outStream.writeDouble(conArray[counter]);
System.out.println(" is the first data");
buffer.delete(0,buffer.length());
counter++;
Я нашел исправить, вот оно:
int trash = 0;
trash = inStream.read();
System.out.println("C");
while (true) {
ch2 = inStream.read();
if ((ch2 == '\r') || (ch2 == '\n')) {
break;
}
if (ch2 != 32) {
sb.append((char)ch2);
}
Я положил целое под названием мусор, чтобы избавиться от пробелов и нежелательных символов до Instream. Работала отлично. Проблема заключалась в том, что последовательное устройство завершает свой вывод с помощью и. Эти два пробела в буфере непрочитаны, поэтому, когда считываются следующие данные, ничего действительно не существует и, следовательно, ошибка возникает в Double.parseDouble (dataStr.trim()) ;.
Любая идея, почему возникла ошибка? –
Согласитесь с @juergend, кроме того, этот код не компилируется, где вы определяете буфер? –
Как принять? Я знаю, что это звучит так глупо ... –