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