how can I generate a random number of any particular number of digits (say 5) in java?
我想在java中生成任意特定数字(例如5,即10000到99999)的随机数。 我怎样才能做到这一点?
在示例中创建范围
使用Random.nextInt(int)方法。
就像是:
1 |
以下是处理负范围和正范围的方法。 计算范围大小内的随机数,然后添加下限。 例如。 如果范围是100-150,则计算0到50之间的数字并添加100.这适用于正范围和负范围。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
以下应该有效:
1 2 3 4 5 6 | public int getRandomNumber(int digits) { assert digits > 0; //added because of comment BigInteger tenPower = new BigInteger("10"); return new Random().nextInt((tenPower.pow(digits).subtract(tenPower.pow(digits-1))).intValue()) + tenPower.pow(digits-1).intValue(); } |
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Digits: 1 - Random nextInt Param: 9 - Adding: 1 Random number: 1 Digits: 2 - Random nextInt Param: 90 - Adding: 10 Random number: 66 Digits: 3 - Random nextInt Param: 900 - Adding: 100 Random number: 377 Digits: 4 - Random nextInt Param: 9000 - Adding: 1000 Random number: 1734 Digits: 5 - Random nextInt Param: 90000 - Adding: 10000 Random number: 96602 |
所以它创建了这样的数字:
1 2 3 4 5 | 1...9 10...99 100...999 1000...9999 10000...99999 |
1 2 3 4 |
这是从这里来的
要么 :
简单。
generate a random number upto 89999 Add 10000 to each generated number.