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 に答える