Advertisement
jaVer404

level18.lesson10.home06 (start) 2

Dec 15th, 2015
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.07 KB | None | 0 0
  1. package com.javarush.test.level18.lesson10.home06;
  2.  
  3. /* Встречаемость символов
  4. Программа запускается с одним параметром - именем файла, который содержит английский текст.
  5. Посчитать частоту встречания каждого символа.
  6. Отсортировать результат по возрастанию кода ASCII (почитать в инете). Пример: ','=44, 's'=115, 't'=116
  7. Вывести на консоль отсортированный результат:
  8. [символ1]  частота1
  9. [символ2]  частота2
  10. Закрыть потоки. Не использовать try-with-resources
  11.  
  12. Пример вывода:
  13. , 19
  14. - 7
  15. f 361
  16.  
  17. 1. Собрать все символы в сортированое дерево TreeSet
  18. 2.
  19. */
  20.  
  21. import java.io.*;
  22. import java.util.HashMap;
  23.  
  24. import java.util.Map;
  25. import java.util.TreeSet;
  26.  
  27. public class Solution {
  28.     public static void main(String[] args) throws IOException
  29.     {
  30.         FileInputStream fileInputStream = new FileInputStream(args[0]);
  31.         TreeSet<Integer> asciiSet = new TreeSet<Integer>();
  32.         char tempChar;
  33.         while (fileInputStream.available()>0) {
  34.             tempChar = (char)fileInputStream.read();
  35.             asciiSet.add((int)tempChar);
  36.         }
  37.  
  38.         Map<Character, Integer> valuesMap = new HashMap<Character, Integer>();
  39.         char charFromText;
  40.         int counter=0;
  41.         while (fileInputStream.available()>0) {
  42.             charFromText = (char)fileInputStream.read();
  43.             for (int i : asciiSet) {
  44.                 if ((char)i==charFromText) {
  45.                     counter++;
  46.                 }
  47.                 valuesMap.put((char)i,counter);
  48.                 counter=0;
  49.             }
  50.         }
  51.  
  52.         for (Map.Entry<Character, Integer> entry : valuesMap.entrySet())
  53.         {
  54.             System.out.println(entry.getKey() + " " + entry.getValue());
  55.         }
  56.         System.out.println(valuesMap.size());
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement