package org.lazyman.util
import org.apache.commons.lang.RandomStringUtils;
import org.apache.commons.lang.math.RandomUtils;
/**
* @author yihuan
* @version RandomNumberUtil.java 2010-1-14 上午11:39:20
*/
public class RandomNumberUtil {
private static final int[] prefix = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
/**
* 随机产生最大为18位的long型数据(long型数据的最大值是9223372036854775807,共有19位)
*
* @param digit
* 用户指定随机数据的位数
*/
public static long randomLong(int digit) {
if (digit >= 19 || digit <= 0)
throw new IllegalArgumentException("digit should between 1 and 18(1<=digit<=18)");
String s = RandomStringUtils.randomNumeric(digit - 1);
return Long.parseLong(getPrefix() + s);
}
/**
* 随机产生在指定位数之间的long型数据,位数包括两边的值,minDigit<=maxDigit
*
* @param minDigit
* 用户指定随机数据的最小位数 minDigit>=1
* @param maxDigit
* 用户指定随机数据的最大位数 maxDigit<=18
*/
public static long randomLong(int minDigit, int maxDigit) {
if (minDigit > maxDigit) {
throw new IllegalArgumentException("minDigit > maxDigit");
}
if (minDigit <= 0 || maxDigit >= 19) {
throw new IllegalArgumentException("minDigit <=0 || maxDigit>=19");
}
return randomLong(minDigit + getDigit(maxDigit - minDigit));
}
private static int getDigit(int max) {
return RandomUtils.nextInt(max + 1);
}
/**
* 保证第一位不是零
*
* @return
*/
private static String getPrefix() {
return prefix[RandomUtils.nextInt(9)] + "";
}
}
相关推荐
commons-lang.zip 关于commons-lang.jar应用的RandomStringUtils类
RandomStringUtils – 用于生成随机的字符串; SerializationUtils – 用于处理对象序列化,提供比一般Java序列化更高级的处理能力; StringEscapeUtils – 用于正确处理转义字符,产生正确的Java、JavaScript、HTML...
GoUtils GoUtils为用户... GoUtils包括以下Java Apache Commons类: WordUtils RandomStringUtils StringUtils(部分实现)安装如果您在系统上设置了Go,请从命令行/终端内的GOPATH目录中输入以下内容: go get github....
生成uid方法 String uid = uidService.get(new UIDRunner() { @Override public String generate() { return RandomStringUtils.randomAlphanumeric(9); } @Override public Boolean exists(String uid) { ...
必须使用的jar包。 Jar文件包含的类: META-INF/MANIFEST.MFMETA-INF/LICENSE.txtMETA-INF/NOTICE.txtorg.apache.commons.lang.ArrayUtils.class org.apache.commons.lang.BitField.class org.apache.commons.lang....
必须使用的jar包。为JRE5.0+的更好的版本所提供 Jar文件包含的类: META-INF/MANIFEST.MFMETA-INF/LICENSE.txtMETA-INF/NOTICE.txtorg.apache.commons.lang.ArrayUtils.class org.apache.commons.lang.BitField....
必须使用的jar包。为JRE5.0+的更好的版本所提供 Jar文件包含的类: META-INF/MANIFEST.MFMETA-INF/LICENSE.txtMETA-INF/NOTICE.txtorg.apache.commons.lang.ArrayUtils.class org.apache.commons.lang.BitField....