String AlphaNumeric = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
StringBuilder sb = new StringBuilder();
for(int i =0; i<8; i++)
{
int index = (int)(AlphaNumeric.length() * Math.random());
sb.append(AlphaNumeric.charAt(index));
}
String str = sb.toString();
答案 0 :(得分:2)
如前所述,该错误正在尝试访问一些不存在的索引。
考虑到String alphaNumeric
的长度,可以使用Random类在该范围内找到一个值。
Random rnd = new Random();
StringBuilder sb = new StringBuilder();
final int len = alphaNumeric.length();
// generate 8 random characters, adding each random character
// to the collector
for (int i = 0; i < 8; ++i) {
// get a random value within the range, 0...N exclusive
int index = rnd.nextInt(len);
sb.append(alphaNumeric.charAt(index));
}
使用Random
可以选择给定范围内的随机值。
公共int nextInt(与int绑定)
从该随机数生成器的序列中返回一个伪随机数,该整数值在0(含)和指定值(不含)之间均匀分布。 nextInt的一般约定是伪随机生成并返回指定范围内的一个int值。所有绑定的可能的int值均以(近似)相等的概率产生。