JString: 日本語文字列拡張 for Ruby

最新版

JString とは

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

API の説明

jstring を使うには "require 'jstring'" を行う必要があります.

String クラス

jstring は String クラスを拡張し, String クラスのメソッド slice, slice!, [], []=, succ! を再定義します. succ! は jcode により再定義されたメソッドをさらに再定義しています.

jstring は [], []= という基本的なメソッドを拡張するため, 既存のコードが 動作しなくなる恐れもあります. 既存のメソッドの動作を変更したくない場合は $JARRAY の値を false にして下さい. $JARRAY のデフォルト値は true ですが, 将来変更される可能性もあるので '$JARRAY = true' と明示することをおすすめ します.

メソッド jslice, jslice! は $JARRAY の値に依らず日本語文字列に拡張された slice メソッドとして働きます. $JARRAY == true の場合, jslice と slice は 同じ機能です.

String#katakana
文字列中のひらがなをカタカナに変換した文字列を返します.
String#katakana!
文字列中のひらがなをカタカナに変換します.
String#hiragana
文字列中のカタカナをひらがなに変換した文字列を返します. 「ヴ」は変換されません.
String#hiragana!
文字列中のカタカナをひらがなに変換します. 「ヴ」は変換されません.
String#jslice(n)

n 番目の文字を返します. 該当文字が ascii 文字の場合はキャラクタコードが 返り, マルチバイト文字の場合は文字がそのまま返ります.

n の単位はバイト単位ではなく, 文字単位です. 例えば "あいう" の場合 2 番目の文字 (0 が起点) は "う" です.

String#jslice(n,len)
n 番目から長さ len の文字列を返します. 長さの単位は文字単位です. 例えば "a" も "あ" も長さは 1 です.
String#jslice(n..m)
n 番目から m 番目までの文字列を返します.
String#jslice!
jslice と同様ですが, 返り値の文字を取り除きます.
String#slice
変数 $JARRAY が true の場合, jslice と同様に働きます. $JARRAY が false の場合は, 従来の動作のままです.
String#slice!
変数 $JARRAY が true の場合, jslice! と同様に働きます. $JARRAY が false の場合は, 従来の動作のままです.
String#[]
変数 $JARRAY が true の場合, jslice と同様に働きます. $JARRAY が false の場合は, 従来の動作のままです.
String#[]=
変数 $JARRAY が true の場合, 指定した範囲を与えた文字列に置き換えます. $JARRAY が false の場合は, 従来の動作のままです.
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 がインストール時と同じ内容である必要があります.

更新履歴

2003-05-07: Ver 0.6.1
2003-04-26
2002-11-29

小松 弘幸 <komatsu@taiyaki.org>
$Id: index.html,v 1.7 2003/05/06 16:25:02 komatsu Exp $