2016-04-17 12 views
0

私のファイルには8つの名前があり、すべての単一の行には1つの名前しかありません。私はランダムに名前の1つを書き出しようとしています。私はいくつかのコードを書いたが、私はどのように続けるのか分からない。(まだ学習していないので、配列を使わずに問題を解決しようとしている) 私のリストにはそれらの名前があります。ランダムな名前を書く

patrica 
natascha 
lena 
sara 
rosa 
kate 
funny 
ying 

と私はここでランダム

system.out.printlnで唯一の名前を書きたい私のコード

BufferedReader inputCurrent = new BufferedReader(new FileReader("aText.txt")); 

    String str; 
    int rowcounter =0; 
    int mixNum =0; 
    String strMixNum=null; 
    while((str = inputCurrent.readLine())!= null){ 
     rowcounter++; 
     mixNum = rnd.nextInt(rowcounter)+1; 
     //strMixNum = ""+strMixNum; 

     String str2; 
     while((str2 = inputCurrent.readLine())!= null){ 
      // i dont know what i s shall write here 
      System.out.println(str2); 
     } 
    } 

    inputCurrent.close(); 

答えて

4

まだ配列やリストについて学習していないので、どの番号の単語を前面に表示するかを把握し、そこに着くとファイルの読み込みを停止します。

ので、あなたはあなたが8つのワードを持って知っていれば、あなたはこれを行う:あなたは、Javaのトリックを学ぶたら

int wordToGet = rnd.nextInt(8); // returns 0-7 
while ((str = inputCurrent.readLine()) != null) { 
    if (wordToGet == 0) 
     break; // found word 
    wordToGet--; 
} 
System.out.println(str); // prints null if file didn't have enough words 

を、あなたはおそらく、それが読者のためにあまり明らかになっても、そのコードを折りたたむ、そうすることができますこのようにそれを行うべきではありません。

int wordToGet = rnd.nextInt(8); 
while ((str = inputCurrent.readLine()) != null && wordToGet-- > 0); 
System.out.println(str); 
+0

非常にいいです、私はコメントが好きです。 – nhouser9

+0

@ LenaMonikaMarshallそれを直接行う方法はありません。ファイルを実行して行を数えなければなりません。あなたの最善の試みは、読み込みとカウントのプロセスを 'java.nio.file.Files#readAllLines'に任せておくことですが、それはあなたのレベルを少し超えていると思います。 – Paul

2

あなたは単に、その後、すべての名前を読んリストに保存することができていますランダムにインデックスを選択する:

List<String> names = Files.readAllLines(Paths.get("aText.txt")); 
// pick a name randomly: 
int randomIndex = new Random().nextInt(names.size()); 
String randomName = names.get(randomIndex); 
System.out.println(randomName); 
+0

私はあなたの答えのための感謝が、私は初心者だと私はそんなにあなたのコードを理解していない:/何それはリストをするのでしょうか? –

+0

一般的に正解ですが、OPがまだ配列を学習していない場合、おそらく収集について学んだことはないので、質問者のレベルに対する有効な回答ではありません。 – Andreas

関連する問題