java - 基于 key=String 和 Value=following Char 的 Linkedhashmap 随机生成文本

标签 java string random character linkedhashmap

我有一个名为generateMapLinkedHashMap,它包含一个字符串作为键,并将该字符串的以下字符的所有可能变体存储为值。 现在我想打印随机文本。 (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/

相关文章:

python - 使用 pandas 使用现有数据框中的唯一元素生成随机数据框

java - 我怎样才能一次从具有不同 key 的redis数据库中获取100条记录?

c# - "Reset"类中随机

java - Apache POI XSSF 加载问题

string - VBA函数返回字符串类型不匹配错误

c - 将一个字符串数组分配给另一个字符串数组

python - 基于多个定界符拆分字符串不会产生一致的结果

c - C 中的 rand() 函数即使在播种时也不是随机的

java - 在 Java + Linux + eclipse juno 上设置 Blackberry 开发环境

java - HTML表单参数全部为空