Ruby の String クラスの日本語向けの拡張です. 配列や slice メソッドを 日本語の文字単位で扱うことや, ひらがなカタカナ変換などが行えます.
#!/usr/bin/env ruby require 'jstring' $KCODE = 'e' $JARRAY = true jstring = "あいうえお" string = "aiueo" ### ひらがなをカタカナに変換 puts jstring.katakana # => "アイウエオ" ### マルチバイト文字と ascii 文字の区別なく文字列の範囲が指定可能です. puts string[1,3] # => "iue" puts jstring[1,3] # => "いうえ" ### マルチバイト文字と ascii 文字で返り値の型が変わります. puts string[2] # => 117 puts jstring[2] # => "う" ### 文字の代入も可能です. string[0..2] = "@" puts string # => "@eo" jstring[0..2] = "@" puts jstring # => "@えお" ### 変数 $JARRAY を false にするとオリジナルの動作に戻ります. ### ($JARRAY のデフォルト値は true です). $JARRAY = false puts string[1,3] # => "iue" puts jstring[1,3] # => "△\244" puts string[2] # => 117 puts jstring[2] # => 164
jstring を使うには "require 'jstring'" を行う必要があります.
jstring は String クラスを拡張し, String クラスのメソッド slice, slice!, [], []=, succ! を再定義します. succ! は jcode により再定義されたメソッドをさらに再定義しています.
jstring は [], []= という基本的なメソッドを拡張するため, 既存のコードが 動作しなくなる恐れもあります. 既存のメソッドの動作を変更したくない場合は $JARRAY の値を false にして下さい. $JARRAY のデフォルト値は true ですが, 将来変更される可能性もあるので '$JARRAY = true' と明示することをおすすめ します.
メソッド jslice, jslice! は $JARRAY の値に依らず日本語文字列に拡張された slice メソッドとして働きます. $JARRAY == true の場合, jslice と slice は 同じ機能です.
n 番目の文字を返します. 該当文字が ascii 文字の場合はキャラクタコードが 返り, マルチバイト文字の場合は文字がそのまま返ります.
n の単位はバイト単位ではなく, 文字単位です. 例えば "あいう" の場合 2 番目の文字 (0 が起点) は "う" です.
jstring = "あいうえお" jstring[0..2] = "@" puts jstring # => "@えお"
Debian パッケージを http://taiyaki.org/debian/から 取得できます. パッケージ名は libjstring-ruby です. 高宮安仁さんに 作成していただきました. ありがとうございます.
http://taiyaki.org/ruby/jstring/src/ からダウンロードして下さい.
jstring のディレクトリ直下にある jstring.config を編集して, インストール先の ディレクトリを設定して下さい. おそらくはデフォルトのままでも問題ないと 思います.
編集後 "make install" を実行するとインストールされます.
"make uninstall" の実行でアンインストールされます. ただし, jstring.config がインストール時と同じ内容である必要があります.