プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Ruby1.9、文字数の取得
半角英数字のみだったら

  hoge = "abcde"
  #sizeとlengthどちらでもよい
  puts hoge.size
  puts hoge.length


でOK。
日本語混じりだったら

  hoge = "あいうえお".encode("UTF-8")
  print hoge.split(//u).length


のようにsplitで配列に分けてその要素数を取得。
ちなみにサンプルでは文字コードをUTF-8に合わせています。

最初「hoge.split(//s).length」とかして
Shift-JISで試してたんだけどドハマリしちゃったのですよ。
どんなドハマリか興味がある方は「Ruby1.9、正規表現のエンコードでハマった」を
見たってくださいまし。

やっぱUTF-8で統一しちゃった方が無難なのかなぁ(--ゞ

※2012-01-06追記
 っつーか、Ruby1.9って「"あいうえお".length」で普通に文字数
 取れるじゃねーか(´A`;)
 1.8系の解説サイト見てできないと思いこんでました。
 1.9系ではむしろバイト数取りたいときに「bytesize」を使うよう注意しろってことね。
 1.8系からシステム移行する人は大変そうですね(^^;
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● Ruby  thema:パソコンな日々 - genre:コンピュータ  Posted by ササキマコト 

  関連記事