2015-08-12 2 views
0

У меня есть две функции, которые я думал, чтобы бросить Двойники несмотря из них используют разные типы данных:Функция с коротким типом данных работает способ отличается двойным

public double[] getdoubleArray(){ 
     final String[] myStringArray = oldArray[0].split(","); 
     double[] d = new double[myStringArray.length]; 
     for(int i = 0; i < d.length -1; i++){ 
      d[i] = Double.parseDouble(myStringArray[i]); 
} 
    return d; 
    } 

это работает как положено.

public short[] getshortArray(){ 
     final String[] myStringArray = oldArray[1].split(","); 
     short[] s = new short[myStringArray.length]; 
     for(int i = 0; i < s.length -1; i++){ 
      s[i] = Short.parseShort(myStringArray[i]); 
} 
    return s; 
    } 

эта функция вызывается вскоре после того, один выше и каждый раз, когда он находится в петле с = 1 она прерывается на другой поток или класса ZygoteInit. но когда я меняю тип данных на двойные, тогда он отлично работает. (Исключено из-за того, что я делаю короткий массив) Может ли кто-нибудь объяснить это или имеет сульфию?

EDIT 1. Я не получаю освобождение. Когда я отлаживаю, я обычно заканчиваю там, где между строками, где нет фактического кода.

  1. Данные в строке не могут быть проблемой, поскольку я скопировал ее из короткого массива, который работал. (строка в файле oldArray [1]: «0, 1, 2, 0, 2, 3, 4»)
+0

Вы заметили, что один метод использует 'oldArray [0]' и другой 'oldArray [1]'? – Eran

+0

@Eran извините, опечатка ... исправила его ... индекс oldArray - это значит быть другим. – HHHH

+0

Как насчет моего первого комментария? – Eran

ответ

1

Проблема заключается в пробелах в вашей строке ввода. Double.parseDouble допускает пробелы, а Short.parseShort бросает NumberFormatException, когда они встречаются. Попробуйте Short.parseShort(myStringArray[i].trim()).

+0

Это была проблема! Сейчас отлично работает, спасибо! – HHHH

Смежные вопросы