2009年07月02日

【1日1Commons】ランダムな文字列を生成する

// JRE 1.6.0_07
// Commons Lang 2.4
// ランダムな文字列を生成する
// org.apache.commons.lang.RandomStringUtils
// tag random string


// randomAlphabeticは引数でした文字数の
// ランダムなアルファベットを生成する
String str = RandomStringUtils.randomAlphabetic(10);
System.out.println( str );
  // => rKVFseXGLn

// randomAsciiはアスキー文字
// パスワード生成とかに使えるかも
str = RandomStringUtils.randomAscii(10);
System.out.println( str );
  // => `f< ZV^A=)

// randomAlphanumericは英数字
str = RandomStringUtils.randomAlphanumeric( 10 );
System.out.println( str );
  // => CGgU266hxI

// 指定した文字列を使って、ランダムな文字列を生成
str = RandomStringUtils.random( 10, "あいうえおかきくけこ" );
System.out.println( str );
  // => うかけこえきかくかえ

// 引数を特に指定しないと、全ての文字から選んでくる
str = RandomStringUtils.random( 10 );
System.out.println( str );
  // => ここに書いたら化けそうな何か

// 文字コードの何番目〜何番目という風にも指定できる
// 例は適当な漢字を表示させている
// 漢字は文字コードの位置がけっこうバラバラなので、常用漢字だけ出すのは難しい
str = RandomStringUtils.random( 10, 20108, 20118, false, false );
System.out.println( str );
  // => 亏亍亏云二云亏亓亐五

// ア〜ンまででランダムな文字列を作りたい時
str = RandomStringUtils.random( 10, (int)'ア', (int)'ン', false, false );
System.out.println(str);
  // => グフスイヅヌガツシヲ