1

ユーザー定義の長さで文字列を生成できる必要があります。たとえば、ユーザーが 128 と入力した場合、128 文字の文字列が必要です。これを達成する方法についてのアイデアはありますか?

4

2 に答える 2

1

X 個のランダムなchars (ループ内) を作成し、 a を使用しStringBufferてそれらを連結できます

于 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 に答える