Rubyで左詰めを行うためにString#ljustを使ったが、文字列に全角文字や半角カナが混じると、予想していた空白の数に調整されなかった。そのためASCII文字と半角カナを判定して全角文字の数を数えてみた。ASCII文字と半角カナ以外の半角文字は考慮されていない。 Pythonでは、unicodedata.east_asian_widthを使用して全角と半角の文字を判別できるようだ。 追記:その2にて、RubyでもUnicodeのEast Asian Widthの定義を参照できるように修正した。ついでに右寄せと中央寄せも追加した。 Ruby 1.8.6 # 左寄せ def ljust_kana(str, size, pad = " ") space = size - width_kana(str) if space > 0 str += pad * space end return s