weydile228

Считаем слова блять

Oct 16th, 2018
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.93 KB | None | 0 0
  1. import java.util.ArrayList;
  2.  
  3. public class Tasks {
  4.  
  5.     private static ArrayList<String> stringToWords (String str){
  6.         /*
  7.             Весь этот метод можно записать вот так(почти):
  8.  
  9.             String gavno[] = needSort.split(" ");
  10.             System.out.println(Arrays.toString(gavno));
  11.  
  12.          */
  13.         char tmp[] = str.toCharArray();//Разбиваем слова на буквы
  14.         ArrayList<String> words = new ArrayList<>();
  15.         StringBuilder word = new StringBuilder();
  16.         for (int i = 0; i < tmp.length; i++) {
  17.             char c = tmp[i];
  18.             if (i + 1< tmp.length){
  19.                 if (c == ' ' || c == ',' ){//Ждем когда нам попадётся пробел или запятая
  20.                     if (word.length() > 0) {//На случай если будет 2 запятых или пробела подряд
  21.                         words.add(word.toString());//Добавляем получившееся слово в конечный массив
  22.                         word.setLength(0);//сбрасываем строку
  23.                     }
  24.                 }else{
  25.                     word.append(c);//Собираем слово по буквам
  26.                 }
  27.             }else{
  28.                 if (word.length() > 0) {//Если массив кончился проверяем есть ли последнее слово и добавляем его
  29.                     words.add(word.toString());
  30.                     word.setLength(0);
  31.                 }
  32.             }
  33.         }
  34.         return words;
  35.     }
  36.  
  37.     private static ArrayList<String> calcWords(ArrayList words){//эта хуйня считает слова
  38.         ArrayList<String> result = new ArrayList<>();
  39.         for (int i = 0; i < words.size(); i++) {
  40.             int cnt = 0;//это счётчик
  41.             for (int j = 0; j < words.size(); j++) {
  42.                 if (words.get(i).toString().toLowerCase().equals(words.get(j).toString().toLowerCase())){//это сравнение двух строк
  43.                     cnt++;
  44.                 }
  45.             }
  46.             result.add(words.get(i).toString() + " " + cnt);//это запись результата
  47.         }
  48.         //Убираем повторения
  49.         for (int i = 0; i < result.size(); i++) {
  50.             for (int j = 0; j < result.size(); j++) {
  51.                 if (i != j){
  52.                     if (result.get(i).toLowerCase().equals(result.get(j).toLowerCase())){
  53.                         result.remove(j);
  54.                     }
  55.                 }
  56.             }
  57.         }
  58.         return result;//вроде ничего сложного, да?
  59.     }
  60.  
  61.     public static void main(String[] args) {
  62.         String needSort = "Ленин всегда живой, ленин всегда со мной.";
  63.         System.out.println(calcWords(stringToWords(needSort)));
  64.  
  65.     }
  66. }
Advertisement
Add Comment
Please, Sign In to add comment