私は説明ジェネレータを作成しており、テキストファイルを ":"で分割しています。したがって、テキストファイルに「dog:fish:cat:bird」がある場合、私のコードは「:」でそれを分割し、ランダムに選択します。しかし、エンディング結果をプリントアウトすると、出力はすべて同じになります。それは配列内の単語をランダムに選ぶでしょうが、もし私がそれを4回生成すると言うなら、4回同じ事になります。では、私のロジックはどうやってこれにアプローチするのが間違っていますか?私はそれが4つのランダムな異なるものを印刷したい。私のコードは以下の通りです:それは、生成されるために、私が入って何度でも「汗をかいた魚」:だからループの都合で文字列の配列をランダムにする方法
パブリッククラスジェネレータ {
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
Random r = new Random();
System.out.print("Enter a file name: ");
String fName = scanner.nextLine();
File infle = new File(fName);
Scanner read = new Scanner(infle);
System.out.print("Enter number to make: ");
int things = scanner.nextInt();
System.out.println();
System.out.println("Here are " + things + " things: ");
System.out.println();
//gets random animal
String animal = read.nextLine();
String[]anm1 = animal.split(":");
int rnd_Animal = r.nextInt(anm1.length);
String rndAnimal = (anm1[rnd_Animal]);
//gets random adjective
String adj = read.next();
String []adj1 = adj.split(":");
int rndAdj = r.nextInt(adj1.length);
String randomAdj = (adj1[rndAdj]);
for(int i=0; i <things; i++)
{
System.out.println(randomAdj + " " + rndAnimal);}
、私の出力は次のように印刷します。私は3つの説明を入力した場合、どのように "汗の魚"、 "臭い犬"、 "遅い魚"と言うことができますか?何か助けてくれてありがとう。
私は、あなたは "無作為の動物を得る"と "ループの中に"ランダムな形容詞のコードブロックを入れる必要があると思う。 – Surely