Why this isn't sorted in ASCII? I think is quite well, but something is wrong.
package pl.codegym.task.task18.task1821;
/*
Częstotliwość występowania symboli
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception {
String data = "";
String string = "";
ArrayList<Character> charList = new ArrayList<>();
ArrayList<Integer> intList = new ArrayList<>();
BufferedReader bufferedReader = new BufferedReader(new FileReader(args[0]));
// String file = "D:\\JAVA\\CodeGym\\CodeGymTasks\\2.JavaCore\\src\\File1.txt";
// BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
while ((data = bufferedReader.readLine()) != null) {
string += data;
}
for (int i = 0; i < string.length(); i++) {
charList.add(string.charAt(i));
}
HashSet<Character> set = new HashSet<>(charList);
ArrayList<Character> newCharList = new ArrayList<>(set);
Collections.sort(newCharList);
// for (Character c : newCharList) {
// System.out.println(c);
// }
for (int i = 0; i < newCharList.size(); i++) {
intList.add(0);
}
for (int i = 0; i < newCharList.size(); i++) {
for (int j = 0; j < charList.size(); j++) {
int count = newCharList.get(i).equals(charList.get(j)) ? 1 : 0;
intList.set(i, intList.get(i) + count);
}
}
for (int i = 0; i < newCharList.size(); i++) {
System.out.println(newCharList.get(i) + " " + intList.get(i));
}
bufferedReader.close();
}
}
/*
Częstotliwość występowania symboli
Program jest uruchamiany z jednym argumentem: nazwą pliku, który zawiera tekst.
Oblicz, jak często występuje każdy symbol.
Posortuj wyniki poprzez zwiększenie kodu ASCII (poczytaj na ten temat w internecie).
Przykład:
','=44, 's'=115, 't'=116.
Wyświetl posortowane wyniki:
[symbol1] częstotliwość1
[symbol2] częstotliwość2
Zamknij strumienie.
Przykładowy wynik:
, 19
- 7
f 361
Requirements:
1. Nie musisz niczego odczytywać z konsoli.
2. Utwórz strumień do odczytu z pliku przekazanego jako pierwszy argument metody main.
3. Musisz obliczyć częstotliwość występowania każdego symbolu w pliku i wyświetlić wyniki.
4. Wyświetlane wyniki powinny być posortowane według rosnącego kodu ASCII.
5. Strumień wykorzystywany do odczytu pliku musi zostać zamknięty.
*/