その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

Java でパターンに基いてランダムな文字列を生成できる random-string というのを書いた

Java 版の random-string を書いたので Maven Central にアップしました.


これはパターンに基いたランダムな文字列を生成する君です.
他言語の実装には PerlString::RandomJavaScriptString_random.js などがあります.
この Java 実装は Perl 版の移植になります *1


使い方としては以下のような感じ.

パターンを使う方法
RandomStringGenerator generator = new RandomStringGenerator();
String randomString = generator.generateFromPattern("cCn!.sb"); // (例えば "aB4@X.Ç" が得られる)
正規表現を使う方法
RandomStringGenerator generator = new RandomStringGenerator();
String randomString = generator.generateByRegex("\\w+\\d*\\s[0-9]{0,3}X"); // (例えば "a5B123 18X" が得られる)


詳しい事は javadoc 等を参照して頂ければと思います.
以上です.よろしくお願いします.


[追記]

セキュアな文字列を生成するわけでは無いので,そういう用途の時は SecureRandom をお使い下さい!!!!!

[追記2]

バグフィックスも兼ねて 1.1.0 を出しました.
一番の変更は,RandomStringGenerator のコンストラクタに Random Class のインスタンスを渡せるようにしたことです.マルチスレッドの兼ね合いなんかで ThreadLocalRandom とかを使いたいこともあると思うので……

実用としては,RandomStringGenerator のコンストラクタには任意の Random Class のインスタンスを渡す事をおすすめします.

*1:まだ入れてない機能 (パターンを自分で定義できる機能とか) がいくつかありますが……