Pastebin launched a little side project called HostCabi.net, check it out ;-)Don't like ads? PRO users don't see any ads ;-)
Guest

RandomWriter2

By: a guest on Jan 15th, 2013  |  syntax: Java  |  size: 2.50 KB  |  hits: 27  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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. }