2017-05-25 12 views
0

私はハングマンプログラムを書いていますが、私は単語のテキストファイルを取りたいと思っていましたが、配列リストにデータを入れ、配列リストからランダムな単語を生成することができました。しかし私は何か新しいことをしたい。プログラムがやっていることはかなり簡単で簡単です。テキストファイルを1行ずつ読み込み、読み込みごとにカウントをインクリメントします。私はテキストファイル内の単語のインデックスとしてカウント値を使用して、そのテキストファイルからランダムな単語を生成したいと思います。誰もが私にこの問題に関する文書を入手することができますと私を助けてくださいできますか?文字列のインデックスとしてカウントを使用してランダムな単語を生成する方法は?

public class WordReader { 


    private static String fileName = "Wordlist.txt"; 
    int count = 0; 

    public WordReader() throws FileNotFoundException { 
     File file = new File(fileName); 
     try(Scanner sc = new Scanner(new FileInputStream(file))){ 
      int count=0; 
      while(sc.hasNext()){ 
       sc.next(); 
       count++; 
      } 

     } 
    } 
} 
+0

は、なぜあなたは内からランダムな位置を取得したいのランダムな行を取得する必要があり、「言葉」配列

using (StreamReader a = new StreamReader("Words.txt")){ words[i] = a.ReadLine(); } 

に線での単語の行を追加します。テキストファイル?新しい単語が必要なときはいつでも、ファイルを開いてトラバースする必要があります。それを構造体にロードし、必要に応じて単語を取得する方がずっと効率的です。 – Shane

答えて

1
String[] words = new string[<Size of array, for example lines count>] 

それから、今あなたが

Random rnd = new Random(); 
int random = rnd.next(0,words.Count()-1) 
string output = words[random]; 
+0

あなたのご意見をお寄せいただきありがとうございます。 @ Taha225それは魅力のように働いた。 –

0

ので、第一に、あなたが(それは、1行に1つの単語だと仮定して)、配列リストに行を追加する必要があり、配列リストに

ArrayList<String> dict = new ArrayList()<>; 

を初期化、文字列の配列リストにそれらをロード

dict.add(sc.next); 

その後、あなたは一度、すべての単語がリスト

に追加された、単語の長さの乱数を取得する必要があります
関連する問題