Advertisement
Guest User

Untitled

a guest
Nov 24th, 2017
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.94 KB | None | 0 0
  1. /**
  2.  *
  3.  *  @author Skoczek Kacper S15532
  4.  *
  5.  */
  6.  
  7. package zad1;
  8.  
  9. import java.io.File;
  10. import java.io.FileNotFoundException;
  11. import java.util.ArrayList;
  12. import java.util.Arrays;
  13. import java.util.List;
  14. import java.util.Scanner;
  15.  
  16. public class Anagrams {
  17.  
  18.     List<List<String>> l = new ArrayList<List<String>>();
  19.     List<String> l2 = new ArrayList<String>();
  20.     List<String> copy = new ArrayList<String>();
  21.    
  22.     public Anagrams(String allWords) {
  23.         // TODO Auto-generated constructor stub
  24.         try {
  25.             Scanner scan = new Scanner(new File(allWords));
  26.             List<String> ls = new ArrayList<String>();
  27.             while(scan.hasNext()) {
  28.                 String s[] = scan.next().split(" ");
  29.                 for (int i = 0; i < s.length; i++) {
  30.                     ls.add(s[i]);
  31.                 }
  32.             }
  33.             for (int i = 0; i < ls.size(); i++) {
  34.                 String s1 = ls.get(i);
  35.                 if (!(copy.contains(s1))) {
  36.                     l2 = new ArrayList<String>();
  37.                     l2.add(s1);
  38.                     for (int j = 0; j < ls.size(); j++) {
  39.                         String s2 = ls.get(j);
  40.                         if (!(l2.contains(s2)) && !(s1.equals(s2)) && s1.length() == s2.length()) {
  41.                             char[] c1 = s1.toCharArray();
  42.                             char[] c2 = s2.toCharArray();
  43.  
  44.                             Arrays.sort(c1);
  45.                             Arrays.sort(c2);
  46.  
  47.                             if (Arrays.equals(c1, c2)) {
  48.                                 l2.add(s2);
  49.                                 copy.add(s2);
  50.                             }
  51.                         }
  52.                     }
  53.                     l.add(l2);
  54.                     copy.add(s1);
  55.                 }
  56.             }
  57.             scan.close();
  58.         } catch (FileNotFoundException e) {
  59.             // TODO Auto-generated catch block
  60.             e.printStackTrace();
  61.         }
  62.     }
  63.  
  64.     public List<List<String>> getSortedByAnQty() {
  65.         // TODO Auto-generated method stub
  66.         l.sort((c1, c2) -> {
  67.             int res = c2.size() - c1.size();
  68.             if(res == 0) res = c1.get(0).compareTo(c2.get(0));
  69.             return res;
  70.         });
  71.         return l;
  72.     }
  73.  
  74.     public String getAnagramsFor(String next) {
  75.         // TODO Auto-generated method stub
  76.         for (int i = 0; i < l.size(); i++) {
  77.             if(l.get(i).contains(next)) {
  78.                 l.get(i).remove(next);
  79.                 return next + ": " + l.get(i);
  80.             }
  81.         }
  82.         return null;
  83.     }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement