Помогите, пожалуйста, не понимаю, что конкретно не так. Пробелы попадают в общее количество символов и все пробелы учитываются. Пробовала и через стринг формат, все равно не так..
package com.javarush.task.task18.task1817;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.Arrays;
import java.util.Locale;
/*
В метод main первым параметром приходит имя файла.
Вывести на экран соотношение количества пробелов к количеству всех символов. Например, 10.45.
1. Посчитать количество всех символов.
2. Посчитать количество пробелов.
3. Вывести на экран п2/п1*100, округлив до 2 знаков после запятой.
4. Закрыть потоки.
1. Считывать с консоли ничего не нужно.
2. Создай поток чтения из файла, который приходит первым параметром в main.
3. Посчитай отношение пробелов ко всем символам в файле и выведи в консоль это число.
4. Выведенное значение необходимо округлить до 2 знаков после запятой.
5. Поток чтения из файла должен быть закрыт.
*/
public class Solution {
private static int countEnter;
public static void main(String[] args) throws IOException {
FileInputStream inputStream;
String pattern = "##0.00";
DecimalFormat decimalFormat = new DecimalFormat(pattern);
if (args.length!=0){
inputStream = new FileInputStream(args[0]);
byte[] buffer = new byte[inputStream.available()];
int data = inputStream.read(buffer, 0, buffer.length);
inputStream.close();
char[] charArr = new char[buffer.length];
for (int i = 0; i<buffer.length; i++) {
charArr[i] = (char) buffer[i];
}
//System.out.println(Arrays.toString(charArr));
int countAllChar = charArr.length;
//System.out.println(countAllChar);
for (int i = 0; i <charArr.length ; i++) {
if (charArr[i]==' '){
countEnter++;
}
}
//System.out.println(countEnter);
//double procent = (countEnter*1.0/countAllChar)*100.00;
//String finalResult = String.format("%.2f", procent);
System.out.println(decimalFormat.format((double)countEnter/countAllChar*100));
}
}
}