package com.mvc.util;
import java.util.Random;
public class RadomUtil {
public static String random(int n) {
if (n < 1 || n > 10) {
throw new IllegalArgumentException("cannot random " + n
+ " bit number");
}
Random ran = new Random();
if (n == 1) {
return String.valueOf(ran.nextInt(10));
}
int bitField = 0;
char[] chs = new char[n];
for (int i = 0; i < n; i++) {
while (true) {
int k = ran.nextInt(10);
if ((bitField & (1 << k)) == 0) {
bitField |= 1 << k;
chs[i] = (char) (k + '0');
break;
}
}
}
return new String(chs);
}
/**
* 测试
* @param args
*/
public static void main(String[] args) {
System.out.println(random(10));
}
}
方法二:
package com.ucf.gateway.bankgw.bank.zy.Utils;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import com.alibaba.fastjson.JSONObject;
import com.ucf.platform.framework.core.util.SensitiveInfoUtils;
public class StringRandom {
private static final int LENGTH=30; //生成多少位随机数
/**
*
* @Description: 生成随机数字和字母,
* @author: GuXiYang
* @date: 2015-11-17 下午3:06:36
* @return 30位随机数
*/
public static String getStringRandom() {
String val = "";
Random random = new Random();
//参数length,表示生成几位随机数
for(int i = 0; i < LENGTH; i++) {
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
//输出字母还是数字
if( "char".equalsIgnoreCase(charOrNum) ) {
//输出是大写字母还是小写字母
int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
val += (char)(random.nextInt(26) + temp);
} else if( "num".equalsIgnoreCase(charOrNum) ) {
val += String.valueOf(random.nextInt(10));
}
}
return val;
}
// public static void main(String[] args) {
// System.out.println(StringRandom.getStringRandom());
// }
}