#パーセント記法
『'』や『"』で囲んできた文字列を、パーセント記法では囲む記号を指定できる。
文字列の中で『"』を使うときにエスケープしなくてもよくなる。
####例
#『"』無し
a = %*TEST*
p a #=> "TEST"
#『"』あり
a = %*"TEST"*
p a #=> "\"TEST\""
書式 | 生成される値 |
---|---|
% | ダブルクォート文字列 |
%Q | ダブルクォート文字列 |
%q | シングルクォート文字列 |
%s | シンボル |
%x | コマンド出力 |
%r | 正規表現 |
#文字列演算
文字列では『+』と『*』を適用して連結することができる。
a = "ru" + "by"
puts a #=> ruby
他にも末尾に連結する場合は『<<』も使用することができる。
a = "ru"
puts a << "by" #=> ruby
※ですが、異なる文字コード(UTF-8とSJISなど)の連結はエラーが発生します。
追記:文字列の比較はlengthやsizeメソッドで文字数を参照できます。
#シンボル
シンボルは主に文字列の前に『:』を置いて定義したもの。
ただし『"』で文字列を囲む必要は無い。
a = "ruby"
b = :study
p str.class #=> String
p sym.class #=> Symbol
パーセント記法を使ってもシンボルを生成することができる。
%s*test* #=> :test
文字列からシンボルを生成する方法
a1 = "test"
a2 = a1.to_sym # to_symメソッドを使用
p a2.class #=> Symbol
作成したシンボルは、文字の並びが同じなら同一のオブジェクトIDを参照しますが、
文字列リテラルの場合は、文字の並びが同じでも、毎回新たにオブジェクトを生成するのでオブジェクトIDが変化します。