программа работает
почему тогда валидация не проходит?
пришлите пожалуйста тесты, которые моя программа неправильно сделает)
package com.javarush.task.task18.task1820;
/*
Округление чисел
*/
import java.io.*;
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream inputStream = new FileInputStream(reader.readLine());
FileOutputStream outputStream = new FileOutputStream(reader.readLine());
reader.close();
String number = "";
int theLastSymbol=0;
ArrayList<String> list = new ArrayList<>();//список чисел в виде символов
while (inputStream.available()>0) {//тут записываются числа в список в виде символов
theLastSymbol = inputStream.read();
if ((char) theLastSymbol!=' '){
number=number+(char)theLastSymbol;
}
else{
list.add(number);
number="";
}
}
inputStream.close();
if((char)theLastSymbol!=' ')
list.add(number);//добавляю почледнее число, если файл не заканчивается пробелом
ArrayList<BigDecimal> resultList = new ArrayList<>();
for(String num:list) {//инициализирую список BigDecimal'ов
if(num.startsWith("-"))
resultList.add(new BigDecimal(num, new MathContext(1, RoundingMode.HALF_DOWN)));//числа из символов превращаются в биг десимал округляясь до 0 знаков почле запятой, что-то тут не так :-(
else
resultList.add(new BigDecimal(num, new MathContext(1, RoundingMode.HALF_UP)));
}
Character c = ' ';
Integer integer;
for(BigDecimal decimal:resultList){//наконец заношу все числа в тот файл, в который нужно занести
integer =decimal.intValue();
outputStream.write(integer.toString().getBytes());
outputStream.write(c);
}
outputStream.close();
}
}