Как я могу выдать эти имена случайно? - PullRequest
0 голосов
/ 25 октября 2019

Моя задача: написать метод, который принимает массив имен - массив может быть любой длины, от одного имени до миллиона имен. Метод должен случайным образом возвращать одно имя в качестве победителя. Это мои входы / выходы

Вход: массив имен [Сьюзи, Тим, Тойин, Хизер, Гейл, Мелани] Вывод: одно из имен из списка Тойин

Пока мой код:

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

Ответы [ 3 ]

0 голосов
/ 25 октября 2019

Ваша попытка имеет массив 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)

Happy Coding ..

0 голосов
/ 25 октября 2019

Я бы использовал Random().nextInt() из пакета java.util вместо Math.random (), который внутренне вызывает Random.nextDouble () . Так что мы избегаем типирования от двойного до целого.

public String andTheWinnerIs(String[] name) {
    String[] names = {"Bob", "Jill", "Tom", "Brandon"};
    int index = new Random().nextInt(names.length);
    String namefinal = names[index];
    return namefinal;
}
0 голосов
/ 25 октября 2019

(Math.random() * names.length) возвращает double, а вы присваиваете int. Вы не можете сделать это неявным образом в Java, поэтому вы должны привести результат. Измените эту строку кода на

int index = (int)(Math.random() * names.length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...