IrofGen
いろふ Advent Calendar 2014の7日目の記事です.
前の日は@kazuhito_mさんのNBM: いろふさんの"ふんいきbot"、作って動かしてみた #irof_historyでした.
明日は@mike_neckさんです.
2014年はirof史において欠かすことのできない一年でしょう.
なぜなら,とある書籍*1によって,今まで不明だったirofインスタンスのクラス*2が判明したからです.
今回はそのクラスからいくつか情報を頂いてirofクラスから生成されうるインスタンスを生成してみます.
public class IrofGen { private static final String BOIN = "oaiu"; private static final String SHIIN = "nzkhrfm"; private static final Random r = new Random(); public String gen() { return this.takes(BOIN, SHIIN, BOIN, SHIIN); } private String takes(String... targets) { return Arrays.stream(targets) .map(this::take) .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append) .toString(); } private char take(String target) { return (char)target.chars() .skip(r.nextInt(target.length())) .findFirst().getAsInt(); } }
BOINとSHIINがirofクラスからお借りした情報です.
そして,irofインスタンスはBOIN + SHIIN + BOIN + SHIINの組み合わせです.
なので,これらからランダムに一字づつ取るようにしました.
public class Main { public static void main(String[] args) { IrofGen irofGen = new IrofGen(); IntStream.range(0, 10) .mapToObj($ -> irofGen.gen()) .forEach(System.out::println); } }
実行してみましょう.
omam imuf amam amih ufum imuz azoh ikuh azif azin
irofインスタンス#equalsが真になるのが出るのはいつになることやら.
*1:www.amazon.co.jp/dp/4774169315/
*2:こっちの世界での実体