String.length
文字列に含まれる文字数のみを教えてくれます。(実際、Ruby 1.9 より前のバージョンでは、何バイトしか表示されないため、さらに役に立ちません。)
String の 'en' 幅がいくつあるかを知りたいです。例えば:
'foo'.width
# => 3
'moo'.width
# => 3.5 # m's, w's, etc. are wide
'foi'.width
# => 2.5 # i's, j's, etc. are narrow
'foo bar'.width
# => 6.25 # spaces are very narrow
n
Stringの最初の en を取得できればさらに良いでしょう:
'foo'[0, 2.en]
# => "fo"
'filial'[0, 3.en]
# => "fili"
'foo bar baz'[0, 4.5en]
# => "foo b"
そして、全体を戦略化できればさらに良いでしょう。スペースは 0.25en にすべきだと考える人もいれば、0.33 にすべきだと考える人もいます。