0

我有一个LinkedHashMap调用generateMap,其中包含一个字符串作为键,并且该字符串的以下字符的所有可能变体都存储为值。现在我想打印一个随机文本。(字符串的存储不是问题)

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);
4

1 回答 1

2

我认为你的代码没问题。以方便的方式,使用 Guava 类LinkedHashMultimap

一个小的改进:您不需要在循环中创建 ArrayList,e.getValue()已经是 ArrayList。

于 2012-04-26T23:38:39.927 回答