生成短信验证码问题,本质是产生某个范围内随机数的问题。
比如,要生成6位短信验证码xxxxxx:
6位数最大到999999;
同时为了防止位数少于6位,导致高位补0的麻烦和尴尬,我们可以特别规定,最小值为最小的6位数,即100000;
这样问题就变成了:产生[100000, 999999]
范围内的随机数的问题。
Java随机数
由于Java
中Random
对象的nextInt(n)
方法产生的是[0, n-1)
范围内的随机数。
因此要产生[m, n]
范围内的随机数就是: m + randObj.nextInt(n-m+1)
参考代码
Random randObj = new Random();
// 生成6位随机验证码
public String generateCode() {
return Integer.toString(100000 + randObj.nextInt(900000));
}
// 生成4位随机验证码
public String generateCode4() {
return Integer.toString(1000 + randObj.nextInt(9000));
}