Advertisement
Guest User

Untitled

a guest
Nov 24th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.97 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.Iterator;
  14. import java.util.List;
  15. import java.util.Scanner;
  16. import java.util.TreeSet;
  17.  
  18. public class Anagrams {
  19.  
  20.     List<List<String>> l = new ArrayList<List<String>>();
  21.     List<String> l2;
  22.    
  23.     public Anagrams(String allWords) {
  24.         // TODO Auto-generated constructor stub
  25.         try {
  26.             Scanner scan = new Scanner(new File(allWords));
  27.             List<String> ls = new ArrayList<String>();
  28.             while(scan.hasNext()) {
  29.                 String s[] = scan.next().split(" ");
  30.                 for (int i = 0; i < s.length; i++) {
  31.                     ls.add(s[i]);
  32.                 }
  33.             }
  34.             for (Iterator<String> iterator = ls.iterator(); iterator.hasNext();) {
  35.                 String s1 = iterator.next();
  36.                 l2 = new ArrayList<String>();
  37.                 l2.add(s1);
  38.                 for (Iterator<String> iterator2 = ls.iterator(); iterator2.hasNext();) {
  39.                     String s2 = iterator2.next();
  40.                     if(!(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.                             ls.remove(s2);
  50.                             iterator2.remove();
  51.                         }
  52.                     }
  53.                 }
  54.                 ls.remove(s1);
  55.                 iterator.remove();
  56.                 l.add(l2);
  57.             }
  58.             scan.close();
  59.         } catch (FileNotFoundException e) {
  60.             // TODO Auto-generated catch block
  61.             e.printStackTrace();
  62.         }
  63.     }
  64.  
  65.     public List<List<String>> getSortedByAnQty() {
  66.         // TODO Auto-generated method stub
  67.         l.sort((c1, c2) -> {
  68.             int res = c1.size() - c2.size();
  69.             if(res == 0) res = c1.get(0).compareTo(c2.get(0));
  70.             return res;
  71.         });
  72.         return l;
  73.     }
  74.  
  75.     public List<String> getAnagramsFor(String next) {
  76.         // TODO Auto-generated method stub
  77.         for (int i = 0; i < l.size(); i++) {
  78.             if(l.get(i).contains(next)) {
  79.                 l.get(i).remove(next);
  80.                 return l.get(i);
  81.             }
  82.         }
  83.         return null;
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement