Вот реально обидно - захотел решить с первой попытки, нашел механизм округления через BigDecimal, реализовал его, протестил, а валидатор все равно не принимает(((
Где ошибка?
package com.javarush.task.task18.task1817;
/*
Пробелы
*/
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;
public class Solution {
public static void main(String[] args) throws Exception{
FileInputStream fl = new FileInputStream(args[0]);
BufferedReader reader = new BufferedReader(new InputStreamReader(fl));
String all = "";
String current = "";
while ((current = reader.readLine()) != null){
all = all+current;
current = "";
}
char [] allChar = all.toCharArray();
int countSpace = 0;
for(int i=0; i<allChar.length; i++){
if(allChar[i] == ' '){
countSpace++;
}
}
double df = (double) countSpace/allChar.length;
BigDecimal dff = new BigDecimal(df*100);
System.out.println(dff.setScale(2, RoundingMode.DOWN));
fl.close();
}
}
/*
Пробелы
В метод main первым параметром приходит имя файла.
Вывести на экран соотношение количества пробелов к количеству всех символов. Например, 10.45.
1. Посчитать количество всех символов.
2. Посчитать количество пробелов.
3. Вывести на экран п2/п1*100, округлив до 2 знаков после запятой.
4. Закрыть потоки.
Требования:
3. Посчитай отношение пробелов ко всем символам в файле и выведи в консоль это число.
4. Выведенное значение необходимо округлить до 2 знаков после запятой.
5. Поток чтения из файла должен быть закрыт.
*/