[ruby]文字数を数える

昨日からの悩みであったrubyにおける多バイト文字列の文字数を数える方法なんですが、結構簡単に解決策が見つかりました。
やっぱり皆さん同じことで悩んでいたのね。


rubyで文字数を数えるには?
http://d.hatena.ne.jp/onering/20080625/1214379779


普通に文字列の長さを



str.length



って求めると、文字列の長さではなくバイト長が求められる。
私の環境ではunicodeで日本語を扱っているので、単純に1文字のバイト数も決められない。
昨日調べたところでは、正規表現を使って文字列の長さを求めるらしいところまでは判明したものの、やり方がわからなかった。
unicodeの多バイト文字かどうか文字コードのあるビットを調べる正規表現でも書くのかと思い、憂鬱になっていました。


今日になり、やっぱり他にいい方法がないかと調べてみると、あっさりと以下の例を見つけました。



$ ruby script/console
Loading development environment (Rails 2.3.2)
>> str = "あいうえお"
=> "あいうえお"
>> str.length
=> 15
>> str.split(//).size
=> 5
>>



splitは引数で与えられた文字により、文字列を分割して配列として返すもの。
引数に「//」って空の正規表現を与えることで、1文字ずつ分割して配列にしてくれます。
帰ってきた配列の個数をsizeで求めれば、めでたく文字数が分かるって寸法です。


あったまいい~!
こんなにシンプルに文字列の長さが求められるとは。。。
私もまだまだ修行が足りないですね。


同じカテゴリー(プログラミング)の記事
 [Rails][will_paginate]検索条件の引継ぎ (2009-07-08 11:50)
 [ruby]文字列マッチング (2009-06-18 16:00)
プロフィール
るいーじ
るいーじ
東京のIT会社からUターンで地元の長野に戻ってきた技術屋です。
今はIT技術とともに、経理・総務にも携わっています。
備忘録的に、情報をまとめてみたいと思います。
アクセスカウンタ
< 2024年04月 >
S M T W T F S
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        
インフォメーション
長野県・信州ブログコミュニティサイトナガブロ
ログイン

ホームページ制作 長野市 松本市-Web8