我正在将现有的VB.Net应用程序移植到Java,但找不到Random.Next(Int32,Int32)的等价物。
我只能在Java API中找到java.util.Random.next(int val)
。
Java API中是否存在等效的.Net框架的Random.Next(Int32,Int32)?
答案 0 :(得分:3)
正如Marc所说,只需通过一些健全性检查来调整Random.nextInt(int)
:
public static int nextInt(Random rng, int lower, int upper) {
if (upper < lower) {
throw new IllegalArgumentException();
}
if ((long) upper - lower > Integer.MAX_VALUE) {
throw new IllegalArgumentException();
}
return rng.nextInt(upper-lower) + lower;
}
答案 1 :(得分:2)
不,但你可以这样:
public static int randomInRange(int min, int max){
return min+Random.next(max-min);
}
答案 2 :(得分:1)
考虑来自Apache Commons Lang的RandomUtils:
http://commons.apache.org/lang/apidocs/org/apache/commons/lang/math/RandomUtils.html
答案 3 :(得分:0)
那么,您可以使用Random.nextInt(int)指定范围,然后只添加最小值?即rand.nextInt(12)+ 5
答案 4 :(得分:0)
Random.Next(x, y)
的来电可以转换为Random.nextInt(y - x) + x;