もっと短く書けるなーと思いまして。
// 一万未満のアラビア数字を漢数字に変換します
def arabicToKanji( int num ){
def kanjiNum = ["", "一", "二", "三", "四", "五", "六", "七", "八", "九" ]
def kanjiOrder = ["", "十", "百", "千"]
def order = num.toString().size()
num.toString().collect{
order--
def idx = it as Integer
( idx>=2 || order==0 )? kanjiNum[idx]+kanjiOrder[order] : (idx==0)? "" : kanjiOrder[order]
}.sum()
}
def alphabets = ["えー", "びー", "しー", "でぃー", "いー", "えふ", "じー", "えいち", "あい", "じぇい", "けー", "える", "えむ", "えぬ", "おー", "ぴー", "きゅー", "あーる", "えす", "てぃー", "ゆー", "ぶい", "だぶりゅー", "えっくす", "わい", "ぜっと"]
(1..1000).each{
println "${arabicToKanji(it)}反田${alphabets[(it-1)%alphabets.size()]}"
}
toString()
で文字列にしたやつを collect()
で一文字ずつ処理して sum()
で結合する感じで。中身の三項演算子のネストは可読性悪いね。