2011-12-03 19 views
-5

私はハングマンプロジェクトに取り組んでいます。今のところ、私はTXTファイルに単語のリストを持っています。私は使用する必要があるRandomStringクラスを持っています。私はNextメソッドに取り組んでおり、固執しています。ここで私が持っているものだ。そして、その項目を取得し、その後、0とあなたのリストのサイズの間の乱数を取得し、ArrayListのが空であるかどうかを確認し、それがリセットされている場合:Array Listのランダムな単語を取得する方法は?

import java.io.File; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Random; 
import java.util.Scanner; 

public class RandomString { 
    private String filename; 
    private ArrayList<String> phrases; 

    public RandomString(String filename) { 
     this.filename = filename; 
     reset(); 
    } 

    public void reset() { 
     phrases = new ArrayList<String>(); 

     try { 
      Scanner scan = new Scanner(new File(filename)); 
      while (scan.hasNext()) 
       phrases.add(scan.nextLine()); 
      scan.close(); 
     } 
     catch (Exception e){} 
    } 

    public String next() { 
     if (phrases.isEmpty()) 
      reset(); 
    } 
} 

私の次のメソッドは、する必要がありますアイテムを削除して、アイテムを返します。

+2

どのような問題がありますか?あなたは乱数を得ることができませんか?アイテムを取得できませんか?アイテムを削除できませんか?それを返すことはできませんか? –

+2

あなたはここで多くの質問をしています。範囲を狭めるようにしてください。 –

+1

あなたが次に投稿したコードは完全に空ですか?ここで空白記入の回答は期待できません。宿題の場合は、特に問題を解決するための努力を示す必要があります。 – jman

答えて

1

乱数行き方:intMath.RandomキャストをとEGあなたのリストにし、10

どのようにこれまでに多くのアイテムを掛けます。あなたのリストの中

  • 6アイテム、int abc=(int) (Math.random()*60);
  • 4アイテム、int abc=(int) (Math.random()*40);

が、私はあなたの質問の残りの部分を理解していない

か、java.util.random

+0

'Random'クラスは、整数のランダムな乱数のためのメソッドを持っています。おそらく彼らは同じことをやっていますが、それはエラーの原因の一つです。 –

+0

私はjava.util.randomを理解できないので、私はmath.randomと言っただけです!!!! :) –

1
を使用することができます

私の最初の意図はあなたのコーディングスタイルにコメントすることです。それは悪いので、他の人に何かを尋ねるときには、特に必要ならばコメントを書くようにしてください。

他のものは完全なものです。例えば、 |のようなブロック閉じ括弧をつけたelse文

あなたはその内容に基づいて配列リストから項目をランダムに取得する必要があると思います。もしそうなら、それをどうやって行うのかについてのアイデアを得ることができます。このコードは、未完了のelse条件の内容になります。

ここであなたの質問の答えは、コードを理解しやすくするためにここで使用されているいくつかの一般的な基準に従ってください(会社、投稿、ブログなどどこに書いても関係ありません)。

import java.io.File; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.Random; 
import java.util.Scanner; 

public class RandomString { 
    private String filename; 
    private ArrayList<String> phrases; 
    // Random number generator instance 
    Random randomGenerator = new Random(); 

    public RandomString(String filename) 

    { 
     this.filename = filename; 
     reset(); 
    } 

    public void reset() { 
     phrases = new ArrayList<String>(); 

     try { 
      Scanner scan = new Scanner(new File(filename)); 
      while (scan.hasNext()) 
       phrases.add(scan.nextLine()); 
      scan.close(); 
     } catch (Exception e) { 
     } 
    } 

    public String next() { 

     // Value retrieved from array-list 
     String item = null; 
     // Index to be read from array-list 
     int index = 0; 

     // Reset the array-list if is it empty 
     if (phrases.isEmpty()) { 
      reset(); 
     } 

     // Check the size, there is a possibility to have zero elements in your stored file 
     if (phrases.size() > 0) { 

      if (phrases.size() > 1) { 
       // Get a random number 
       index = randomGenerator.nextInt(phrases.size()); 
      } else { 
       // If the array-list has only one item there is no need to get a random number. 
       index = 0; 
      } 
      // Get the indexed item 
      item = phrases.get(index); 
      // Remove item 
      phrases.remove(index); 

     } 

     // Return the item 
     return item; 
    } 
} 

だから最善を尽くしてください。

関連する問題