Java random number with given length [duplicate]
To generate a 6-digit number:
Use Random
and nextInt
as follows:
Random rnd = new Random();
int n = 100000 + rnd.nextInt(900000);
Note that n
will never be 7 digits (1000000) since nextInt(900000)
can at most return 899999
.
So how do I randomize the last 5 chars that can be either A-Z or 0-9?
Here's a simple solution:
// Generate random id, for example 283952-V8M32
char[] chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();
Random rnd = new Random();
StringBuilder sb = new StringBuilder((100000 + rnd.nextInt(900000)) + "-");
for (int i = 0; i < 5; i++)
sb.append(chars[rnd.nextInt(chars.length)]);
return sb.toString();
Generate a number in the range from 100000
to 999999
.
// pseudo code
int n = 100000 + random_float() * 900000;
For more details see the documentation for Random
If you need to specify the exact charactor length, we have to avoid values with 0 in-front.
Final String representation must have that exact character length.
String GenerateRandomNumber(int charLength) {
return String.valueOf(charLength < 1 ? 0 : new Random()
.nextInt((9 * (int) Math.pow(10, charLength - 1)) - 1)
+ (int) Math.pow(10, charLength - 1));
}
try this:
public int getRandomNumber(int min, int max) {
return (int) Math.floor(Math.random() * (max - min + 1)) + min;
}