ハロの外部記憶インターフェイス

そろそろ覚える努力が必要かも…

Stringクラス

casecmp

「<=>」演算子と同じ動きをする。但し、大文字・小文字を区別しない

"a" <=> "A"   #=1
"a".casecmp "A"   #=0

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"
  1. 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"
  1. 処理の前後で変数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*********"
  1. 文字数は文字列を含めて居る

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')  #"ルビー"
  1. MIMEエンコードをアンパック

include?

文字列が含まれていればTrue

index, rindex

パターンや文字列を検索し、初めてマッチした位置を返す
rindexは逆方向で検索する

match

正規表現によるマッチングを行いマッチした場合MatchDataオブジェクトを返す

"abcdefg".match(/[c-f]/)
#<MatchData "c">

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