| 著作一覧 |
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
ジェズイットを見習え |