如何随机给出这些名称?

时间:2019-10-25 12:34:21

标签: java eclipse

我的任务是: 编写一个使用名称数组的方法-该数组可以是任意长度,所以从一个开始 名字改为一百万个名字。该方法应随机返回一个名称作为 优胜者。 这些是我的输入/输出

输入:名称数组[Suzy,Tim,Toyin, 希瑟·盖尔(Meatherie) 输出:Toyin列表中的名称之一

到目前为止,我的代码是:

public String andTheWinnerIs(String[] name) {
    String[] names = {"Bob", "Jill", "Tom", "Brandon"};
    int index = (Math.random() * names.length);
    String namefinal = names[index];
    return namefinal;
}

有人可以帮我吗?它只是给我错误:(

我正在使用Java Eclipse

2 个答案:

答案 0 :(得分:1)

您的尝试将String数组作为输入,并且对该数组不起作用。您不应该在该方法内部创建数组。

检查此代码

public static void main(String args[]) throws IOException {
        Main m = new Main();
        String[] names = {"Bob", "Jill", "Tom", "Brandon"};
        System.out.println("The winner is: " + m.andTheWinnerIs(names));
    }

    public String andTheWinnerIs(String[] name) {
        int index = (int) (Math.random() * name.length);
        return name[index];
    }

如您所见,我仅将您代码的随机代码块保留在andTheWinnerIs方法中。在main方法中,您应该首先创建Main类对象,以便可以调用非静态方法andTheWinnerIs。另外,您可以将该方法设为静态:public static String andTheWinnerIs(String[] name)

快乐编码。

答案 1 :(得分:1)

我将使用java.util包中的Random().nextInt()代替内部调用Random.nextDouble()的 Math.random()。这样我们就可以避免将类型转换从double转换为int。

public String andTheWinnerIs(String[] name) {
    String[] names = {"Bob", "Jill", "Tom", "Brandon"};
    int index = new Random().nextInt(names.length);
    String namefinal = names[index];
    return namefinal;
}