如何创建随机单词选择器方法

时间:2017-01-29 04:37:16

标签: java

我是java的新手,只是学习。我正在做一个java任务,我不太明白;我应该创建一个方法,它将接受一个String数组并从该数组返回一个随机选择的Sting。这是确切的说明: * getRandomWord - >使用一系列字符串并选择                    (返回)随机中的一个单词。

           signature:  String getRandomWord (String [] array)
           *

然后我想我必须创建另一种方法。我怀疑你有两个方法命名相同,但说明说:* getRandomWord - >使用一个字符串数组和一个整数(len)。                    此方法从数组中选择一个单词                    长度超过len。如果这个词的长度                    selected小于len,则此方法选择                    另一个字是随机的。这重复500次                    直到找到/返回一个单词或找不到单词                    在这种情况下,此方法将返回null。

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

* 正如我所说,我真的很新,所以感谢你的帮助。

3 个答案:

答案 0 :(得分:3)

由于这是一项任务,我只会给你指针自己编写方法。 String getRandomWord (String [] array)中使用的算法如下所示:

  1. 计算数组的长度。请参阅How to find length of a string array
  2. 从数组的长度生成随机字的索引。请参阅Getting random numbers in java
  3. 获取并返回数组中的随机单词。
  4. 所有这些都应该在不超过3行代码中完成。祝你好运!

答案 1 :(得分:1)

我建议你自己做。如果你没有得到,代码在这里:)使用随机API。 Random方法的nextInt()方法给出了Random值,它可以作为索引从Arra返回随机String。 以下是2种方法的完整代码:

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;

}

}

答案 2 :(得分:1)

首先尝试做自己,因为这是一项任务。如果你没有自己动手,请从下面的代码中获取帮助。

    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;
    }