我用这个方法:
def getRandomNumber(int num){
Random random = new Random()
return random.getRandomDigits(num)
}
Run Code Online (Sandbox Code Playgroud)
我打电话的时候写的 println getRandomNumber(4)
但我有一个错误
No signature of method: java.util.Random.getRandomDigits() is applicable for argument types: (java.lang.Integer) values: [4]
Run Code Online (Sandbox Code Playgroud)
注意:我在另一个groovy类中使用此方法,它正常工作,没有任何错误
Mar*_*ers 57
没有这样的方法java.util.Random.getRandomDigits.
要获取随机数,请使用nextInt:
return random.nextInt(10 ** num)
Run Code Online (Sandbox Code Playgroud)
您还应该在应用程序启动时创建一次随机对象:
Random random = new Random()
Run Code Online (Sandbox Code Playgroud)
每次需要新的随机数时,都不应创建新的随机对象.这样做会破坏随机性.
ana*_*ocs 23
您可以使用以下内容生成介于1和上限之间的数字.
Math.abs(new Random().nextInt() % [UPPER_LIMIT]) + 1
这是一个具体的例子:
示例 - 生成1到600范围内的伪随机数:
Math.abs(new Random().nextInt() % 600) + 1
Run Code Online (Sandbox Code Playgroud)
这将为您生成一个范围内的随机数.在这种情况下1-600.您可以在整数范围内将值600更改为您需要的任何值.
如果要使用不等于1的下限,则可以使用以下公式.
Math.abs(new Random().nextInt() % ([UPPER_LIMIT] - [LOWER_LIMIT])) + [LOWER_LIMIT]
这是一个具体的例子:
示例 - 生成40到99范围内的伪随机数:
Math.abs( new Random().nextInt() % (99 - 40) ) + 40
Run Code Online (Sandbox Code Playgroud)
这将生成40和99范围内的随机数.