我需要能够生成具有用户定义长度的字符串。例如,如果用户输入 128,我需要一个 128 个字符的字符串。关于如何做到这一点的任何想法?
问问题
78 次
2 回答
1
您可以创建 X random char
s(在循环中)并使用 aStringBuffer
连接它们
于 2012-08-18T20:32:15.240 回答
1
static final String generate(int n) {
final char[] buf = new char[n];
final Random rand = new Random();
final int n_cs = Character.MAX_VALUE + 1;
while (n > 0) {
char ch;
do {
ch = (char) rand.nextInt(n_cs);
} while (Character.isHighSurrogate(ch)
|| Character.isLowSurrogate(ch));
buf[--n] = ch;
}
return new String(buf);
}
通常,您可能应该指定某种字母表,如下所示...
static final String generate(int n, final char[] alphabet) {
final char[] buf = new char[n];
final Random rand = new Random();
final int n_alpha = alphabet.length;
while (n > 0) {
buf[--n] = alphabet[rand.nextInt(n_alpha)];
}
return new String(buf);
}
于 2012-08-18T20:43:55.897 回答