我有一个名为generateMap
的LinkedHashMap
,它包含一个字符串作为键,并将该字符串的以下字符的所有可能变体存储为值。
现在我想打印随机文本。 (String的存储不是问题)
Example:
String = "Lorem ipsum Loram ipar"
Key----------Value
After Lor -> e,a
After ore -> m
After rem -> " "
After em -> i
After m i -> p,p
After ip -> s,a
应该使用随机选择的下一个字符来生成随机文本,然后选择下一个“窗口”,依此类推。我不知道如何生成新文本,也许你可以给我提示? 这是我到目前为止得到的:
for (Entry<String, ArrayList<String>> e : generateMap.entrySet()) {
//store the values into an ArrayList
ArrayList<String> valuesList = new ArrayList<String>(e.getValue());
// randomly choose on of the values
int random = (int) (Math.random() * (valuesList.size()));
String randomWort = valuesList.get(random);
String print = e.getKey() + randomWort;
}
System.out.println(print);
最佳答案
我认为你的代码没问题。以方便的方式,使用 Guava 类 LinkedHashMultimap .
一个小改进:您不需要在循环中创建 ArrayList,e.getValue()
已经是 ArrayList。
关于java - 基于 key=String 和 Value=following Char 的 Linkedhashmap 随机生成文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10342809/