[ top ] [ prev ] [ up ] [ next ]
wide.pi is Pi source.(ShiftJIS)

Wide module

2 byte 文字と 1 byte 文字が混在する文字列に対して有効な操作を用意しました。

Wide は Regexp の日本語判別機能を活用しています。文字列の先頭から順に調べていくので,速度面でやや難があります。

Download

wide.rb

はじめに

Ruby は生まれた時から日本語に対する配慮がなされていましたので, 2 byte 文字に対する操作は簡単になっています。

しかし,文字コードがいまだ統一には程遠い現実からも分かるように, 2 byte 文字は本質的なところで複雑になっています。

Ruby は日本語に配慮していると言っても,やはり基本は ASCII 文字セットなのです。また,いわゆるバイナリを扱えるのも Ruby の利点であり,日本語だけに機能を特化するわけにもいきません。

というわけで,このような比較的簡単な module を用意することで,日本語処理をもっと楽にしようというわけです。

methods

wide_at(string, index)
文字列 string の位置 index が 2 byte 文字であるかどうか調べます。 2 byte 文字のとき 1 が返ります。 1 byte 文字のとき 0 が返ります。

space?(dst, src)
文字列 dst と文字列 src を連結するときに空白が必要であるかどうか。 dst の末尾と src の先頭の文字が 2 byte 文字であれば false を返します。 dst の末尾もしくは src の先頭の文字が得られない場合には nil を返します。
author: Kazuhiro Yoshida
[ top ] [ prev ] [ up ] [ next ]