Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.test.level18.lesson10.home06;
- /* Встречаемость символов
- Программа запускается с одним параметром - именем файла, который содержит английский текст.
- Посчитать частоту встречания каждого символа.
- Отсортировать результат по возрастанию кода ASCII (почитать в инете). Пример: ','=44, 's'=115, 't'=116
- Вывести на консоль отсортированный результат:
- [символ1] частота1
- [символ2] частота2
- Закрыть потоки. Не использовать try-with-resources
- Пример вывода:
- , 19
- - 7
- f 361
- 1. Собрать все символы в сортированое дерево TreeSet
- 2.
- */
- import java.io.*;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.TreeSet;
- public class Solution {
- public static void main(String[] args) throws IOException
- {
- FileInputStream fileInputStream = new FileInputStream(args[0]);
- TreeSet<Integer> asciiSet = new TreeSet<Integer>();
- char tempChar;
- while (fileInputStream.available()>0) {
- tempChar = (char)fileInputStream.read();
- asciiSet.add((int)tempChar);
- }
- Map<Character, Integer> valuesMap = new HashMap<Character, Integer>();
- char charFromText;
- int counter=0;
- while (fileInputStream.available()>0) {
- charFromText = (char)fileInputStream.read();
- for (int i : asciiSet) {
- if ((char)i==charFromText) {
- counter++;
- }
- valuesMap.put((char)i,counter);
- counter=0;
- }
- }
- for (Map.Entry<Character, Integer> entry : valuesMap.entrySet())
- {
- System.out.println(entry.getKey() + " " + entry.getValue());
- }
- System.out.println(valuesMap.size());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement