String

文字列クラス.Stringクラスは任意の長さのバイト 列を扱うことができます.

Stringクラスのメソッドには名前が `!'で終るものがあります.これらのメソッドは文字 列の中身を直接変更するものです.`!'のついていな い同じ名前のメソッドは文字列のコピーを作ってそちらを更新しま すのでやや遅いですが,より安全です.例えば:

f = "string"
print f, f.sub("str", "ski"), f
       => string, skiing, string
print f, f.sub!("str", "ski"), f
       => skiing, skiing, skiing
  

スーパークラス:

Object

インクルードしているモジュール:

Comparable
Enumerable

クラスメソッド:

new(string)

stringと同じ内容の新しい文字列を返します.

メソッド:

self + other

文字列の結合を行います.

self * times

文字列の繰り返し.例えば"x" * 4"xxxx"を返します.

self % args

文字列のフォーマット.sprintf(self, *args)と ほぼ同じ.

self == other
self > other
self >= other
self < other
self <= other

文字列の比較.変数$=の値が偽である時,比較はア ルファベットの大文字小文字を無視して行われます.

self << other

文字列への内容の追加.

self =~ other

正規表現のマッチを行います.マッチが成功すればマッチした位置 のインデックスを,そうでなければnilを返します. otherが文字列であった場合には正規表現へのコンパイ ルが行われます.

~ self

$_ =~ selfと同じです.

self[nth]

nth番目の文字(文字コードを示すFixnum)を 返します.

self[start..last]

start番目の文字からlast番目の文字まで の部分文字列を返します.部分文字列は両端を含みます.

self[start, length]

startから長さlengthだけ部分文字列を返 します.

self[nth] = val

nth番目の文字をvalに変更します.文字列 がフリーズされている時には例外が発生します.

self[start..last] = val

startからlastまでの部分文字列を valに置き換えます.

self[beg, len] = val

startから長さlengthの部分文字列を valに置き換えます.

self <=> other

selfotherを辞書順で比較して, selfが大きい時に正,等しい時に0,小さい時に負 の整数を返します.

self << other
concat(other)

otherの内容を追加します.

capitalize
capitalize!

先頭の文字がアルファベットであれば大文字に変更します.

chop
chop!

文字列の最後の文字を取り除きます(終端が"\r\n"であれば2文字取 り除きます).chop!は文字列そのものを変更します. chop!は取り除く文字が無かった時には nilを返します.

chomp([rs])
chomp!([rs])

文字列の末尾からrsで指定する行区切りを取り除きま す.rsのデフォルト値は変数$/の値です. chomp!は文字列そのものを変更します. chomp!は取り除く改行が無かった時には nilを返します.

clone
dup

文字列と同じ内容を持つ新しい文字列を返します.フリーズした文 字列のcloneはフリーズされた文字列を返しますが, dupは内容の等しいフリーズされていない文字列を返 します.

crypt(salt)

crypt(3)を使って文字列を暗号化します. saltは2バイト以上の任意の文字列を指定します.

delete(str)
delete!(str)

文字列からstrに含まれる文字を取り除きます. strの形式はtr(1)と同じです.つまり, `a-c'は`a'から`c'を意 味し,文字列の先頭が`^'の場合は文字列に含まれな い文字を削除します. delete!は取り除く文字が無かった時には nilを返します.

downcase
downcase!

文字列中の大文字を小文字に置き換えます. tr("A-Z","a-z")よりもちょっと速そうです. downcase!は置き換えが発生しなかった時には nilを返します.

dump

文字列中の非表示文字をエスケープ記法に置き換えた文字列を返し ます.str == eval(str.dump)が保証されます.

each_byte {|char|...}

文字列中の各文字に対して繰り返します.

each([rs]) {|line|...}
each_line([rs]) {|line|...}

文字列中の各行に対して繰り返します.行の区切りは rsで指定します.rsのデフォルト値は変数 $/の値です.

empty?

文字列が空(つまり長さ0)の時,真を返します.

freeze

文字列の更新を禁止します.フリーズされた文字列の変更は例外を 発生させます.

frozen

文字列がフリーズされている時真を返します.

gsub(pattern, replace)
gsub!(pattern, replace)

文字列中でpatternにマッチする部分を全て replaceに置き換えます.置換文字列 replace中の`\&'`\0'はマッチした部分文字列に, `\1...\9'はn番目の括弧の内容に置き換えられま す.置換文字列内では\`\'\+も使えます.これらは $`$'$+に対応します.

注意: replaceの中で $<digits>は使えません.この文字列が評価 される時点ではまだマッチが行われていないからです.

gsub!は元の文字列を書き換えます.置換が行なわ れなかった場合はnilを返します.一方, gsubは文字列のコピーを変更します.マッチが成 功しなかった場合には元の文字列を返します.

gsub(pattern) {...}
gsub!(pattern) {...}

gsubgsub!はブロックを指定して呼 び出された時には,全てのマッチした部分をブロックを評価した値 で置き換えます.ブロックの中では変数 $<digits>を参照できます.マッチした部分文 字列がブロックの引数として渡されます.

hex

文字列を16進文字列であると解釈して,整数に変換します.

index(substr[, pos])

文字列中のsubstrのインデックスを返します.もし見 付からなければnilを返します.posが与 えられた時にはその位置から検索を開始します. substrは文字列,文字コードを示す整数,正規表現の いずれかを指定します.

intern

文字列に対応するシンボル値(Fixnum)を返します.文字列 はナルキャラクタ('\0')を含むことができません.

length
size

文字列の長さを返します.

ljust(width)
rjust(width)
center(width)

それぞろ右詰め,左詰め,中央寄せした文字列を返します.文字列 の長さがwidthより長い時には元の文字列をそのまま返 します.

oct

文字列を8進文字列であると解釈して,整数に変換します.文字列が8進 (/^[0-7]+/)でない時には0を返します.

reverse
reverse!

文字列をひっくり返します.

replace(other)

文字列の内容をotherの内容で置き換えます.

rindex(substr[, pos])

文字列中の最後のsubstrの位置を返します.もし見付 からなければnilを返します.posが与え られた時にはその位置で検索を終了します.indexは文 字列,文字コードを示す整数,正規表現のいずれかを指定します.

scan(re)
scan(re) {...}

reで与えられる正規表現を文字列に対して繰り返しマッ チを行い,正規表現中の括弧で括られた部分にマッチした文字列を 配列として返します.正規表現が括弧を含まない場合はマッチした 部分文字列の配列を返します.ブロックを指定して呼び出された時に は,括弧で括られた部分にマッチする部分文字列(括弧を含まない 場合はマッチ全体)をブロックのパラメータとします.

split([sep[, limit]])

文字列をsepで指定されたパターンによって分割して 配列に格納します.sepが省略された時のデフォルト はシステム変数$;の値が用いられます.$;の値が nilの時には先頭の空白を除いて空白で分割を行い ます.

limitが指定された時には最大limit個の フィールドに分割します.

sepで指定されたパターンが空文字列とマッチする場 合は文字列が1文字ずつに分割されます.例えば:

print 'hi there'.split(/ */).join(':');
        => h:i:t:h:e:r:e
        

squeeze([str])
squeeze!([str])

strに含まれる同一の文字の並びをひとつにまとめます. squeeze!は文字列を変更しなかった時には nilを返します.


matz@netlab.co.jp