在java中随机生成一个数字字符串

时间:2014-03-11 06:48:14

标签: java random

如何在java中随机生成字母数字字符串。

我的会话ID字符串的格式为

b03c0-000-5h6-7645-000000000 

我想随机生成它的第4个块(b03c0-000-5h6-****-000000000)。保留所有其他数字相同。

4 个答案:

答案 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())