文字列クラス.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
selfとotherを辞書順で比較して,
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) {...}
gsubとgsub!はブロックを指定して呼
び出された時には,全てのマッチした部分をブロックを評価した値
で置き換えます.ブロックの中では変数
$<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を返します.