Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.util.*;
- public class RandomWriter {
- public static void main(String[] args) throws FileNotFoundException {
- Random r = new Random();
- String sentence = readToString("huckfinn.txt");
- int k = r.nextInt(4) + 3;
- int length = 10;
- String seed = getSeed(sentence);
- String word = buildWord(seed, k, sentence);
- for (int i = 0; i < length; i++) {
- seed = getSeed(sentence);
- k = r.nextInt(4) + 3;
- word = buildWord(seed, k, sentence);
- System.out.print(word + " ");
- }
- System.out.println(".");
- }
- private static String buildWord(String seed, int k, String sentence) {
- String holder = seed;
- for (int i = 0; i < k; i++) {
- holder += nextBestLetter(holder, sentence);
- }
- return holder;
- }
- private static String nextBestLetter(String holder, String sentence) {
- String winner = "";
- Map<String, Integer> mapOfCandidates = new HashMap<String, Integer>();
- for (int i = 0; i < (sentence.length() - holder.length()); i++) {
- String checker = sentence.substring(i, i + holder.length());
- if (checker.equals(holder) && !mapOfCandidates.containsKey(sentence.substring((i + holder.length()), (i + holder.length() + 1)))) {
- mapOfCandidates.put(sentence.substring(i + holder.length(), i + holder.length() + 1), 1);
- }
- else if (mapOfCandidates.containsKey(sentence.substring((i + holder.length()), (i + holder.length() + 1)))) {
- mapOfCandidates.put(sentence.substring(i + holder.length(), i + holder.length() + 1), mapOfCandidates.get(sentence.substring(i + holder.length(), i + holder.length() + 1)) + 1);
- }
- }
- int max = 0;
- for (String s : mapOfCandidates.keySet()) {
- if (mapOfCandidates.get(s) > max && !s.equals(" ")) {
- max = mapOfCandidates.get(s);
- winner = s;
- }
- }
- return winner;
- }
- private static String getSeed(String sentence) {
- Random r = new Random();
- int index = r.nextInt(sentence.length());
- String holder = sentence.substring(index, index + 1);
- while (holder.contains(" ") || holder.contains(".") || holder.contains(",") || holder.contains("\"")) {
- index = r.nextInt(sentence.length());
- holder = sentence.substring(index, index + 1);
- }
- return holder;
- }
- public static String readToString(String path) throws FileNotFoundException {
- String wholeThing = "";
- Scanner scanner = new Scanner(new File(path));
- while (scanner.hasNext()) {
- wholeThing += scanner.next() + " ";
- }
- return wholeThing;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement