Получение случайного значения из массива
У меня есть простое приложение, которое генерирует факты. Я хотел бы включить функцию, которая генерирует случайный факт вместо увеличения декременции.
Мой массив выглядит следующим образом.
public class Facts {
String facts[] = {
"Elephants are the only mammals that can't jump.",
"Candles will burn longer and drip less if they are placed in the freezer a few hours before using.",
"Potatoes have more chromosomes than humans.",
"You burn more calories sleeping than you do watching television.",
"Animals that lay eggs don't have belly buttons.",
};
String factNumber[] = {
"Fact 1",
"Fact 2",
"Fact 3",
"Fact 4",
"Fact 5",
};
public String randomButton() {
Random r = new Random();
return facts[i]
}
Ответы
Ответ 1
Используйте случайный класс. У этого класса есть метод nextInt(int n)
(doc) и цитата:
Возвращает псевдослучайное равномерно распределенное значение int между 0 (включительно) и указанное значение (исключение), взятое из этого последовательность генераторов случайных чисел. Общий договор nextInt что одно значение int в указанном диапазоне псевдослучайно сгенерировано и вернулся. Все n возможных значений int производятся с (приблизительно) равной вероятности...
Итак, вам нужно случайное число, которое на самом деле является случайным фактом, поэтому генерируйте случайное число между нулем и размером массива фактов:
Пример:
public String randomButton() {
Random random = new Random();
return facts[random.nextInt(facts.length)];
}
Ответ 2
Simple! Метод nextInt(facts.length)
возвращает случайное целое число от 0 до длины массива. Поместите его как индекс массива для получения случайного:
Random rnd = new Random()
String randomFact = facts[rnd.nextInt(facts.length)];
Ответ 3
Попробуйте также
private Integer a = 0;
public String randomButton() {
Random random = new Random();
a = random.nextInt(facts.length);
}
String factNumber = facts.a;