著作一覧 |
ebanさんから教わってゴルフ場を見たけど、あまり役にはたたなくて残念。
ゴルフなのだからある意味当然なのだが、1.8の動作と文字コード(utf-8)に依存し過ぎている。
kskさんのは、やたらと短くて(なんと92バイト)読みやすそうだから見てみたが1文字文字列.hash
がその文字の値になるという1.8の振る舞いを利用しているからちょっとだめだ。
(ゴルフ以外だとsumimさんがオーソドックスなやつを出してくれている。)
でも、ゴルフを見ていて、文字列→文字列と馬鹿正直にやるよりも、文字列→整数→文字列とするほうが楽そうだというのはわかった。
で、こんな感じになった。
KINDEX = "十一二三四五六七八九" ARABIC = [ 10, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] def kj_to_arabic(s) n = 0 s.each_char do |c| if n < 10 && n > 0 n *= 10 else n += ARABIC[KINDEX.index(c)] end end n.to_s end
ジェズイットを見習え |