Java API中是否存在等效的.Net框架的Random.Next(Int32,Int32)?

时间:2009-05-08 09:50:18

标签: random java-api

我正在将现有的VB.Net应用程序移植到Java,但找不到Random.Next(Int32,Int32)的等价物。

我只能在Java API中找到java.util.Random.next(int val)

Java API中是否存在等效的.Net框架的Random.Next(Int32,Int32)?

5 个答案:

答案 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)

答案 3 :(得分:0)

那么,您可以使用Random.nextInt(int)指定范围,然后只添加最小值?即rand.nextInt(12)+ 5

答案 4 :(得分:0)

Random.Next(x, y)的来电可以转换为Random.nextInt(y - x) + x;