package com.javarush.task.task18.task1821;

import java.io.FileReader;
import java.io.IOException;

/*
Встречаемость символов
*/

public class Solution {
    public static void main(String[] args) throws IOException {

        int[] chars = new int[126 - 31]; // массив на все Eng ASCII

        try (FileReader fr = new FileReader(args[0])) {
            while (fr.ready()) {
                int num = fr.read();

                if (num >= 32 && num <=126) {
                    ++chars[num - 32]; // инкремент значения ячейки массива (-32, чтобы Space, например попадал в [0])
                }
            }
        }

        for (int i = 0; i < chars.length; i++) {
            if (chars[i] != 0) {
                System.out.println((i + 32) + ": " + (char) (i + 32) + " " + chars[i]); // +32, чтобы воостановить кок ASCII
            }
        }

    }
}
для файла с содержимым: Something wrong! a"", ~; вывод: 32: 2 33: ! 1 34: " 2 44: , 1 59: ; 1 83: S 1 97: a 1 101: e 1 103: g 2 104: h 1 105: i 1 109: m 1 110: n 2 111: o 2 114: r 1 116: t 1 119: w 1 126: ~ 1 Process finished with exit code 0 Ну то есть вывод отстортирован по возрастанию... А валидатор утверждает, что нет...