Advertisement
Guest User

RandomWriter2

a guest
Jan 15th, 2013
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.50 KB | None | 0 0
  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.util.*;
  4.  
  5.  
  6. public class RandomWriter {
  7.  
  8.     public static void main(String[] args) throws FileNotFoundException {
  9.         Random r = new Random();
  10.         String sentence = readToString("huckfinn.txt");
  11.         int k = r.nextInt(4) + 3;
  12.         int length = 10;
  13.        
  14.         String seed = getSeed(sentence);
  15.         String word = buildWord(seed, k, sentence);
  16.        
  17.         for (int i = 0; i < length; i++) {
  18.             seed = getSeed(sentence);
  19.             k = r.nextInt(4) + 3;
  20.             word = buildWord(seed, k, sentence);
  21.             System.out.print(word + " ");
  22.         }
  23.         System.out.println(".");       
  24.     }
  25.  
  26.     private static String buildWord(String seed, int k, String sentence) {
  27.         String holder = seed;
  28.         for (int i = 0; i < k; i++) {
  29.             holder += nextBestLetter(holder, sentence);
  30.         }
  31.         return holder;
  32.     }
  33.  
  34.  
  35.     private static String nextBestLetter(String holder, String sentence) {
  36.         String winner = "";
  37.         Map<String, Integer> mapOfCandidates = new HashMap<String, Integer>();
  38.         for (int i = 0; i < (sentence.length() - holder.length()); i++) {
  39.             String checker = sentence.substring(i, i + holder.length());
  40.             if (checker.equals(holder) && !mapOfCandidates.containsKey(sentence.substring((i + holder.length()), (i + holder.length() + 1)))) {
  41.                 mapOfCandidates.put(sentence.substring(i + holder.length(), i + holder.length() + 1), 1);
  42.             }
  43.             else if (mapOfCandidates.containsKey(sentence.substring((i + holder.length()), (i + holder.length() + 1)))) {
  44.                 mapOfCandidates.put(sentence.substring(i + holder.length(), i + holder.length() + 1), mapOfCandidates.get(sentence.substring(i + holder.length(), i + holder.length() + 1)) + 1);
  45.             }
  46.         }
  47.         int max = 0;
  48.         for (String s : mapOfCandidates.keySet()) {
  49.             if (mapOfCandidates.get(s) > max && !s.equals(" ")) {
  50.                 max = mapOfCandidates.get(s);
  51.                 winner = s;
  52.             }
  53.         }
  54.         return winner;
  55.     }
  56.  
  57.     private static String getSeed(String sentence) {
  58.         Random r = new Random();
  59.         int index = r.nextInt(sentence.length());
  60.         String holder = sentence.substring(index, index + 1);
  61.         while (holder.contains(" ") || holder.contains(".") || holder.contains(",") || holder.contains("\"")) {
  62.             index = r.nextInt(sentence.length());
  63.             holder = sentence.substring(index, index + 1);
  64.         }
  65.         return holder;
  66.     }
  67.    
  68.     public static String readToString(String path) throws FileNotFoundException {
  69.         String wholeThing = "";
  70.         Scanner scanner = new Scanner(new File(path));
  71.         while (scanner.hasNext()) {
  72.             wholeThing += scanner.next() + " ";
  73.         }
  74.         return wholeThing;
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement