Встречаемость символов
Программа запускается с одним параметром - именем файла, который содержит английский текст.
Посчитать частоту встречания каждого символа.
Отсортировать результат по возрастанию кода ASCII (почитать в инете).
Пример:
','=44, 's'=115, 't'=116.
Вывести на консоль отсортированный результат:
[символ1] частота1
[символ2] частота2
Закрыть потоки.
Пример вывода:
, 19
- 7
f 361
Requirements:
1. Считывать с консоли ничего не нужно.
2. Создай поток для чтения из файла, который приходит первым параметром в main.
3. В файле необходимо посчитать частоту встречания каждого символа и вывести результат.
4. Выведенный в консоль результат должен быть отсортирован по возрастанию кода ASCII.
5. Поток для чтения из файла должен быть закрыт.
package com.javarush.task.task18.task1821;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
ArrayList<String> arrayStr = new ArrayList<>();
ArrayList<Character> array = new ArrayList<>();
String s = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+[]{};:,.?'\"/*-";
for (int i = 0; i < s.length()-1; i++) {
array.add(s.charAt(i));
}
array.sort((i1,i2) -> (int)i1 -(int)i2);
while (reader.ready()){
arrayStr.add(reader.readLine());
}
ArrayList<Integer> arrayCount = new ArrayList<>(array.size());
for (int i = 0; i < array.size(); i++) {
arrayCount.add(0);
}
for (String temptStr: arrayStr) {
for (int i = 0; i< temptStr.length(); i++) {
int index = array.indexOf(temptStr.charAt(i));
int value = arrayCount.get(index);
arrayCount.set(index,++value);
}
}
for (int i = 0; i < array.size(); i++) {
char tempC = array.get(i);
int tempCount = arrayCount.get(i);
if(tempCount!=0){
System.out.println(tempC + tempCount);}
}
}
}
package com.javarush.task.task18.task1821;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
/*
Встречаемость символов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(args[0]));
ArrayList<String> arrayStr = new ArrayList<>();
ArrayList<Character> array = new ArrayList<>();
String s = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm!@#$%^&*()_-=+[]{};:,.?'\"/*-";
for (int i = 0; i < s.length()-1; i++) {
array.add(s.charAt(i));
}
array.sort((i1,i2) -> (int)i1 -(int)i2);
while (reader.ready()){
arrayStr.add(reader.readLine());
}
reader.close();
ArrayList<Integer> arrayCount = new ArrayList<>(array.size());
for (int i = 0; i < array.size(); i++) {
arrayCount.add(0);
}
for (String temptStr: arrayStr) {
for (int i = 0; i< temptStr.length(); i++) {
int index = array.indexOf(temptStr.charAt(i));
int value = arrayCount.get(index);
arrayCount.set(index,++value);
}
}
for (int i = 0; i < array.size(); i++) {
char tempC = array.get(i);
int tempCount = arrayCount.get(i);
if(tempCount!=0){
System.out.println(tempC + tempCount);}
}
}
}