从数组中随机选择一个数字以将其放入另一个数组中

时间:2018-04-14 17:20:33

标签: java arrays random

我正在用Java编写项目的代码,我需要从数组int [] numbers={1,2,3,4,5,6,7,8,9,10}中选择一个数字并取出所选的数字并将其放入另一个数组中但在索引中 - 第二个数组中的1个..因为我希望第二个数组上的输入就像人类把那个数字放在那里。例如,我希望它处于索引5而不是6的位置(因为计算机计数为0但我们没有)。 我写的代码是:int rndNumb = rnd.nextInt(numbers.length) - 1,但它似乎不起作用...(rnd是我的随机类对象)。

2 个答案:

答案 0 :(得分:0)

我猜是Random rnd = new Random();所以问题是nextInt(length) - 1会返回-1length之间的值 - >请考虑删除已添加到nextInt()功能结果的减号。

Random.nextInt()文档中,您可以看到:

 * @return the next pseudorandom, uniformly distributed {@code int}
 *         value between zero (inclusive) and {@code bound} (exclusive)
 *         from this random number generator's sequence

答案 1 :(得分:0)

你可以使用Math.random(),这会返回一个从0到1的随机双精度数(包括零,但不包括1)。 然后,您可以将此数字乘以10(或数组的大小)。 然后将其转换为Integer(这会将其向下舍入,意味着除去小数)。然后,您可以使用此数字来获取数组中该索引处的int。这是代码:

    int[] numbersArray = {1,2,3,4,5,6,7,8,9,10};
    int[] randomNumberArray = new int[1];
    int randomNumber = (int) (Math.random() * 10);
    randomNumberArray[0] = numbersArray[randomNumber];
    System.out.println(randomNumberArray[0]);

这将生成一个从0到9的随机数,这反过来将为您提供从1到10的数组中的数字(因为数组索引从0开始)。

关于你问题的第二部分,你能澄清一点吗?数组总是从0开始,所以如果你希望你的数字存储在索引1,只需在索引0中放一些随机数。这就是数组的工作方式。