Pri*_*uru 8 java string random alphanumeric
我从另一个答案使用String Builder,但除了字母/数字,没有空格,标点符号等,我不能使用任何东西.你能解释一下如何限制这段代码中的字符集吗?另外,我如何确保它总是长达30个字符?
Random generator = new Random();
StringBuilder stringBuilder = new StringBuilder();
int Length = 30;
char tempChar ;
for (int i = 0; i < Length; i++){
tempChar = (char) (generator.nextInt(96) + 32);
stringBuilder.append(tempChar);
Run Code Online (Sandbox Code Playgroud)
我已经查看了大多数其他答案,但无法找到解决方案.谢谢.如果这是重复的话,不要对我大喊大叫.大多数答案都没有解释代码的哪一部分控制生成的数字的长度或调整字符集的位置.
我也试过了stringBuilder.Replace('','1'),这可能有用,但是eclipse说没有替换StringBuilder的方法.
zap*_*apl 22
例如,如果你想控制字符集和长度
public static String randomString(char[] characterSet, int length) {
Random random = new SecureRandom();
char[] result = new char[length];
for (int i = 0; i < result.length; i++) {
// picks a random index out of character set > random character
int randomCharIndex = random.nextInt(characterSet.length);
result[i] = characterSet[randomCharIndex];
}
return new String(result);
}
Run Code Online (Sandbox Code Playgroud)
并结合
char[] CHARSET_AZ_09 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();
Run Code Online (Sandbox Code Playgroud)
指定字符集.
它不是基于StringBuilder
您知道长度并且不需要所有开销.
它分配一个char[]
正确大小的数组,然后用输入数组中随机选择的字符填充该数组中的每个单元格.
更多示例请使用此处:http://ideone.com/xvIZcd
归档时间: |
|
查看次数: |
26758 次 |
最近记录: |