プログラムを作っていて表記なようなルーチンが必要になりました。gistを探せばすぐ出てきそうですが作ってみました。
Rubyらしいプログラムはなかなかできないもので。。。1文字ずつベタで検索するプログラムを作ったのですが、サーチならinclude?やindexがあるじゃん、ということで作ったのがプログラム1。基本パターンしかテストしていないので抜けがあるかもしれません。
■プログラム1(String#indexを使った例)
で、プログラム1を作りながら、こんな面倒なことをしなくてもsplitで分離して個数を調べればいいじゃん。。。と思って作り直したのが以下。作ったというにはおこがましいくらいです。ただライブラリ機能を利用させてもらっているだけです。
■プログラム2(String#splitを使った例)
で、処理時間を計測してみました。
250単語くらいの英文を対象にtheの個数を数えてみました。その処理を10万回ループした時間が以下です。
プログラム1 4.1秒
プログラム2 2.5秒
Rubyであれこれやるよりライブラリ機能を利用した方が早い。。。ということなのだと思います。