From: WATANABE Hirofumi Date: 1999-07-20T00:23:07+09:00 Subject: [ruby-list:15545] Re: 半 to 全 わたなべです. nobu.nakada@nifty.ne.jp writes: :require "jcode" :require "nkf" :NKF::nkf("-eXz", kana).tr("ァ-ン", "ぁ-ん") #-z というオプションはありません. jcode の tr ってちょっと遅すぎる気もするなあ. EUC 限定になっちゃうとことがまずいけど, こんな感じで同じよう な方法を考えてました. require 'nkf' require 'jcode' while gets $_.gsub!(/(?:\x8e[\xa1-\xdf])+/n) do |str| NKF::nkf('-EeX', str).tr('ァ-ン', 'ぁ-ん') end print end jcode.rb も高速化してみました. 一般的に tr は同じ引数で繰り 返し呼ばれることが多いのでかなり効くと思います. -- わたなべひろふみ --- lib/jcode.rb.orig Mon May 10 13:38:29 1999 +++ lib/jcode.rb Tue Jul 20 00:17:03 1999 @@ -60,3 +60,6 @@ + ExpandChCache = {} + def _expand_ch + return ExpandChCache[self] if ExpandChCache.key? self a = [] @@ -73,2 +76,3 @@ end + ExpandChCache[self] = a a