如何在java中随机生成字母数字字符串。
我的会话ID字符串的格式为
b03c0-000-5h6-7645-000000000
我想随机生成它的第4个块(b03c0-000-5h6-****-000000000)
。保留所有其他数字相同。
答案 0 :(得分:2)
Apache Commons RandomStringUtils
"b03c0-000-5h6-"+RandomStringUtils.randomAlphanumeric(4)+"-000000000";
答案 1 :(得分:0)
试试这个。
private static final String CONST_ALPHA_NUM ="0123456789abcdef";
public static String getAlphaNumeric(int len) {
StringBuffer sb = new StringBuffer(len);
for (int i=0; i<len; i++) {
int ndx = (int)(Math.random()*CONST_ALPHA_NUM.length());
sb.append(CONST_ALPHA_NUM.charAt(ndx));
}
return sb.toString();
}
System.out.println("b03c0-000-5h6-" + getAlphaNumeric(4) +"-000000000");
答案 2 :(得分:0)
import java.util.UUID;
String uuid = UUID.randomUUID().toString();
String sessionId = "b03c0-000-5h6-" + uuid.substring(0,4) + "-000000000";
更随意:
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
int n = (int) (Math.random() * 28);
String sessionId = "b03c0-000-5h6-" + uuid.substring(n,n+4) + "-000000000";
答案 3 :(得分:0)
如果安全性很重要(因为我认为是会话标识符),那么我建议使用Java的SecureRandom。您可以使用BigInteger轻松获取SecureRandom编号:
BigInteger bI = new BigInteger(256, new java.security.SecureRandom())