Android 如何生成具有用户定义长度的字符串?

Android 如何生成具有用户定义长度的字符串?,android,string,Android,String,我需要能够生成具有用户定义长度的字符串。 例如,如果用户输入128,我需要一个包含128个字符的字符串。 关于如何实现这一点有什么想法吗?您可以创建X个随机字符(在循环中),并使用StringBuffer将它们连接起来 static final String generate(int n) { final char[] buf = new char[n]; final Random rand = new Random(); final int n_cs = Character.MAX

我需要能够生成具有用户定义长度的字符串。 例如,如果用户输入128,我需要一个包含128个字符的字符串。
关于如何实现这一点有什么想法吗?

您可以创建X个随机
字符(在循环中),并使用
StringBuffer
将它们连接起来

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);
}

非常感谢您的回复。我不知道StringBuffer,因为你的建议,我发现StringBuilder更适合我的任务。再次干杯。@AlexHaycock您可能不需要
StringBuffer
,因为它是同步的,是线程安全的。。。也许您想要
StringBuilder
?无论哪种方式,您都可以使用
char[]
,如我的示例所示:-)