Загрузка данных из файла и вставка в массив в зависимости от длины первой строки

Ответ, как отмечали все, в значительной степени «вот как определяются блоки».

Есть несколько предложений, чтобы сделать код более красивым. См. ARM

 try (FileReader in = makeReader(), FileWriter out = makeWriter()) {
       // code using in and out
 } catch(IOException e) {
       // ...
 }

Предполагается, что исправления также будут устранены.

with(FileReader in : makeReader()) with(FileWriter out : makeWriter()) {
    // code using in and out
}

UPDATE: ARM реализована в Java 7. http://download.java.net/jdk7/docs/technotes/guides/language/try-with-resources.html

0
задан johhny.b 18 January 2019 в 17:14
поделиться

1 ответ

IMP[i] = Double.parseDouble(split[1])

Измените это на:

IMP[i] = Double.parseDouble(split[i+1])

вы получаете только второй элемент из массива IMP, равный 1,03.

РЕДАКТИРОВАТЬ

Заменить цикл while на:

int i = 0;
while(i < split.length){
    IMP[i] = Double.parseDouble(split[i]);
    i++;
}
double lastValue = IMP[i - 1];
while(i < years){
    IMP[i] = lastValue;
    i++;
}

Это должно помочь, если вы хотите повторить последнее значение для оставшейся части числа лет. Если у вас возникли какие-либо проблемы, попробуйте заменить Double.parseDouble(split[i]) на Double.parseDouble(split[i + 1]) или попытаться отладить и посмотреть, какие значения есть в каких переменных во время выполнения.

0
ответ дан Nika Narushvili 18 January 2019 в 17:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: