如何在Java中生成最小值和最大值之间的随机整数?

2022-08-31 22:39:18

什么方法返回最小值和最大值之间的随机整数?还是不存在这样的方法?

我正在寻找的是这样的东西:

NAMEOFMETHOD (min, max) 

(其中 min 和 max 是 s),返回如下内容:int

8

(随机)

如果确实存在这种方法,请您链接到相关文档以及您的答案。

谢谢。


更新

尝试实现完整的解决方案,我收到以下错误消息:

class TestR
{
    public static void main (String[]arg) 
    {   
        Random random = new Random() ;
        int randomNumber = random.nextInt(5) + 2;
        System.out.println (randomNumber) ; 
    } 
} 

我仍然从编译器收到相同的错误:

TestR.java:5: cannot find symbol
symbol  : class Random
location: class TestR
        Random random = new Random() ;
        ^
TestR.java:5: cannot find symbol
symbol  : class Random
location: class TestR
        Random random = new Random() ;
                            ^
TestR.java:6: operator + cannot be applied to Random.nextInt,int
        int randomNumber = random.nextInt(5) + 2;
                                         ^
TestR.java:6: incompatible types
found   : <nulltype>
required: int
        int randomNumber = random.nextInt(5) + 2;
                                             ^
4 errors


这到底是怎么回事?


答案 1

在应用程序启动时构造一个 Random 对象:

Random random = new Random();

然后使用 Random.nextInt(int)

int randomNumber = random.nextInt(max + 1 - min) + min;

请注意,下限和上限都是包含的。


答案 2

您可以使用 Random.nextInt(n)。<这将返回 [0,n] 中的随机整数。只需使用 max-min+1 代替 n 并在答案中添加 min,即可得到所需范围内的值。


推荐