Не могу понять почему не сортирует в кодировке ASCII,
Я же явно преобразую строку в битовый массив ASCII
byte [] textInBytes = fileString.toString().getBytes(StandardCharsets.US_ASCII);
Соответсвенно символы должны быть по моей логике в двоичном виде с кодировкой ASCII
Дальше сортирую по двоичному коду (который в моем понимании в кодировке ASCII)
Collections.sort(charList);
Считаю и пишу в МАП для вывода
Вывод
C 14
N 1
P 1
R 1
S 2
T 2
98
a 60
b 5
c 28
d 6
e 57
f 5
g 6
( 2
h 28
) 2
i 28
j 1
l 18
- 2
m 15
. 5
n 26
o 20
0 3
p 10
1 1
q 1
2 1
r 49
s 21
t 48
u 14
v 3
w 1
y 5
: 4
; 3
< 1
> 1package com.javarush.task.task18.task1821;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.*;
/*
Встречаемость символов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(args[0])));
Set<Integer> chars = new HashSet<>();
List<Integer> allChars = new LinkedList<>();
Map<Character, Integer> amountEveryChar = new HashMap<>();
StringBuilder fileString = new StringBuilder();
String ch1;
while ((ch1 = bufferedReader.readLine()) != null) {
fileString.append(ch1);
}
bufferedReader.close();
byte [] textInBytes = fileString.toString().getBytes(StandardCharsets.US_ASCII);
InputStream inputStream = new ByteArrayInputStream(textInBytes);
/*int ch;
while ((ch = inputStream.read()) != -1) {
System.out.print((char) ch);
}*/
int ch;
while ((ch = inputStream.read()) != -1) {
chars.add(ch);
allChars.add(ch);
}
List<Integer> charList = new ArrayList<>(chars);
Collections.sort(charList);
for (Integer character : charList) {
int counter = 0;
for (Integer symbol : allChars){
if (character.equals(symbol)) {
counter++;
}
}
int tempInt = (int) character;
char tempCh = (char) tempInt;
amountEveryChar.put(tempCh, counter);
}
for (Map.Entry<Character, Integer> pair: amountEveryChar.entrySet()) {
System.out.println(pair.getKey() + " " + pair.getValue());
}
//System.out.println("zzzxzxzxzx");
}
}