Stringクラス
slice
文字列の一部を切り出す
"abcdef".slice(2,2) #"cd" "abcdef"[2,2] #"cd" "abcdef".slice(2..4) #"cde" "abcdef".slice("bc") #"bc" "abcdef".slice("bf") #nil
slice!
元の文字列から一部を切り出す
a = "abcdef" a.slice!(2,2) #"cd" p a #"abef" "abcdef".slice!(2..4) #"cde"
split
文字列を分割する
"abcdef".split("d") #["abc","ef"] "abcdef".split(/d/) #["abc","ef"] "abc\nef".split(/\n/) #["abc","ef"]
split()は空白や\t等を分割する
"abc def ghi".split() => ["abc", "def", "ghi"] "abc\tdef\tgif".split() => ["abc", "def", "gif"]
sub, gsub
指定したパターンとマッチした最初の部分を特定文字列に置換する
gsubはマッチした全ての文字列を置換する
"abcdef-abcddd".sub(/abc/, 'xyz') #"xyzdef-abcddd" "abcdef-abcddd".gsub(/abc/, 'xyz') #"xyzdef-xyzddd"
tr, tr_s
特定文字列をパターンに合わせて変換する
tr_sは重複文字列を1つに圧縮する
a = "aabbccddeeffgg" a.tr('a-c','A-C') #"AABBCCddeeffgg" a.tr_s('a-c', 'A-C') # "ABCddeeffgg"
delete
指定したパターンが含まれる文字列を元の文字列から削除する
a = "aabbccddeeffgg" a.delete('a-f', 'd-g') #"aabbccgg"
- a-fのパタンの中でd-gを削除する処理
squeeze
指定した文字列が複数並んでいる場合1文字に圧縮する
"aabbccddeeffgg".squeeze('a-e') #"abcdeffgg"
replace
元の文字列を入れ替える
a = "abc" a.replace('def') p a #"def"
「<<」、concat
元の文字列に連結
a = "abc" a << 'def' a #"abcdef"
- 処理の前後で変数aのオブジェクトIDは変わらない
capitalize, capitalize!
文字列の先頭文字を大文字にし以降は小文字にする
a = "abcdEF" a.capitalize #"Abcdef"
downcase, downcase!
upcase, upcase!
swapcase, swapcase!
半角の小文字を大文字に大文字は小文字に変換する
chomp,chomp!
末尾から引数で指定する改行コード(\r, \r\n, \n)を取り除く
strip,, strip! rstrip, rstrip!
末尾の空白文字を綴じ除く(\t \r, \n, \f, \v)
lstrip, lstrip!
先頭の空白文字を綴じ除く(\t \r, \n, \f, \v)
chop, chop!
末尾の文字列を1つ消す
reverse, reverse!
文字列を逆順にする
length, size
文字列のバイト数を返す
count
指定したパターンの文字の数を返す
empty?
文字列が空かどうかを返す
center
文字列を文字数の中央にして返す
a = "abc" a.center(20) #" abc " a.center(20, "*") #"********abc*********"
- 文字数は文字列を含めて居る
ljust, rjust
文字列を左側に, 文字列を右側に
a = "abc" a.ljust(20) #"abc " a.rjust(20) #" abc"
dump
改行コード等の非表示文字列を表示する
a = "abc\tdef\n" a.dump #"abc\tdef\n"
unpack
Array#packメソッドでパックされた文字列を指定テンプレートにしたがってアンパックする
'440r440T4408'.unpack('m') #"ルビー"
include?
文字列が含まれていればTrue
index, rindex
パターンや文字列を検索し、初めてマッチした位置を返す
rindexは逆方向で検索する
scan
マッチした部分の文字列を配列で返す
"abcdefg".scan(/[c-d]/) #["c", "d"]
succ, succ!, next, next!
次の文字列
each, each_line, lines
文字列の各行に対して繰り返す
bytes
文字のバイトを順に返す
each_char, chars
文字列の文字を繰り返す
upto
自分自身から指定された文字列までsuccを使って繰り返す
"a".upto("c") { |c| puts c} a b c
変換メソッド
hex, oct, tp_f, to_i, to_s, to_str, to_sym, intern