生成1到10个Java之间的随机数

时间:2013-12-05 01:51:06

标签: java random

我想在Java中生成1到10之间的数字。

以下是我的尝试:

Random rn = new Random();
int answer = rn.nextInt(10) + 1;

在调用nextInt方法和添加内容时,有没有办法告诉括号()放什么?

3 个答案:

答案 0 :(得分:218)

the documentation所述,此方法调用返回“伪随机,均匀分布的int值介于0(含)和指定值(不包括)之间”。这意味着在您的情况下,您将获得0到9之间的数字。所以你已经通过在该号码上添加一个来正确地完成了所有事情。

一般来说,如果您需要生成从minmax(包括两者)的数字,请编写

random.nextInt(max - min + 1) + min

答案 1 :(得分:71)

执行此操作的标准方法如下:

提供:

  • min最小值
  • 最大值

并获得最小值和最大值之间的整数,包括在内。

Random rand = new Random();

// nextInt as provided by Random is exclusive of the top value so you need to add 1 

int randomNum = rand.nextInt((max - min) + 1) + min;

请参阅相关的JavaDoc

正如Aurund所解释的,在彼此短时间内创建的随机对象将倾向于产生类似的输出,因此将创建的Random对象保持为字段而不是方法是个好主意。

答案 2 :(得分:17)

这将用于生成数字1 - 10.确保在代码顶部导入Random。

import java.util.Random;

如果你想测试它,试试这样的事情。

Random rn = new Random();

for(int i =0; i < 100; i++)
{
    int answer = rn.nextInt(10) + 1;
    System.out.println(answer);
}

此外,如果您更改括号中的数字,它将创建一个从0到该数字-1的随机数(除非您添加一个当然的,然后它将从1到您输入的数字)。< / p>