1

我需要能够生成具有用户定义长度的字符串。例如,如果用户输入 128,我需要一个 128 个字符的字符串。关于如何做到这一点的任何想法?

4

2 回答 2

1

您可以创建 X random chars(在循环中)并使用 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 回答