2017-01-29 32 views
1

私は本当にJavaと学習するのは初めてです。私はJavaの割り当てをしているし、私はかなり理解していない。私はString配列を取り、その配列からランダムに選択されたStingを返すメソッドを作成することになっています。ここには正確な指示があります。 * getRandomWord - >は文字列の配列を消費し、ランダムに単語のうちの1つを (返す)を選択します。ランダムな単語のピッカー方法を作成する方法

  signature: String getRandomWord (String [] array) 
      * 

次に、別の方法を作成する必要があると思います。私はあなたが同じものという2つのメソッドを持っているとは思わないが、命令は言う:* getRandomWord - >は、文字列と整数(len)の配列を消費します。 このメソッドは、 の長さがlenより大きい配列から1ワードを選択します。単語 の長さがlenより小さい場合、このメソッドは をランダムに選択します。これは、単語が見つかるか返されるか、または単語が見つからなくなるまで、 を500回繰り返します。 この場合、このメソッドはnullを返します。 *

  signature: String getRandomWord (String [] array, int len) 

私はとても助けが高く評価され、実際に新たなんだ言ったように。

答えて

3

これは割り当てなので、私はあなた自身にメソッドを書くためのポインタを与えるだけです。 String getRandomWord (String [] array)で使用するアルゴリズムは、以下に解説されています。

  1. 配列の長さを計算します。 How to find length of a string array
  2. 配列の長さからランダムな単語のインデックスを生成します。 Getting random numbers in java
  3. ランダムワードを取得して配列から返します。

これらはすべて3行以内のコードで行う必要があります。がんばろう!

1

私はあなた自身で行うことをお勧めします。あなたが取得しない場合、コードはここにあります:)ランダムAPIを使用してください。 RandomメソッドのnextInt()メソッドは、ArraからランダムなStringを返すためのインデックスとして使用できるRandom値を返します。

import java.util.Random; 

public class TestJava { 
public static void main(String[] args) { 
String[] strArray = { "first", "second", "third" }; 
System.out.println(getRandomWord(strArray)); 
} 

static String getRandomWord(String[] array) { 
Random random = new Random(); 
int index = random.nextInt(array.length); 
return array[index]; 

} 

static String getRandomWordWithLength(String[] array, int len) { 
Random random = new Random(); 

for (int i = 0; i < 500; i++) { 
    int index = random.nextInt(3); 
    String selectedString = array[index]; 
    if (selectedString.length() > len) 
    return selectedString; 
} 
return null; 

} 

} 
1

それが割り当てであるとして最初に自分で行うようにしてください:以下 は、2つの方法の完全なコードです。あなたがそれをやり遂げることに失敗した場合、以下のコードから助けを得てください。

private String getRandomWord(String[] array) { 
     int idx = new Random().nextInt(array.length); 
     return (array[idx]); 
    } 

    private String getRandomWord(String[] array, int len) { 
     String word = null; 
     for (int i = 1; i <= 500; i++) { 
      word = getRandomWord(array); 
      if (word.length() > len) { 
       break; 
      } else { 
       word = null; 
      } 
     } 
     return word; 
    } 
関連する問題