From: Takaaki Tateishi Date: 2002-11-22T01:52:25+09:00 Subject: [ruby-dev:18887] String#substr? 立石です. 何度も部分文字列との比較を行う場合,String#[beg...end] で文字列を切 り出して比較すると何度も文字列を生成してはGCで回収されるという無駄な コストが発生します.これを避けるために,文字列が指定された部分文字列 に一致することを検査する以下のような String#substr? をStringクラスへ 実装して欲しいのですがいかがでしょうか? 他のメソッドでも良いのですが,スペースをとらずに検査する手段が欲しい と思っています. class String def substr?(str, offset=nil, len=nil) offset ||= 0 len ||= str.length for i in 0..(len-1) if( self[i+offset] != str[i] ) return false end end return true end end str = "abcdefghijklmn" p str.substr?("cde", 2) # => true p str.substr?("cdef***", 2, 4) # => true -- Takaaki Tateishi