Ruby 〜Stringオベジェクト覚書編〜

RubyのStringオブジェクトについて

文字列を扱うオブジェクトでシングルクオートかダブルクオートで囲んだ文字列がStringオベジェクト

$ pry
[1] pry(main)> '文字'
=> "文字"
[2] pry(main)> "文字"
=> "文字"
[3] pry(main)> 

Stringオブジェクトのクラスの確認

[4] pry(main)> '文字'.class
=> String
[5] pry(main)> 

Stringクラスの機能について

upcaseメソッド(小文字を大文字に変換する)

※メソッドとは特定の処理を行う機能のこと

[6] pry(main)> 'sample'.upcase
=> "SAMPLE"
[7] pry(main)> 

ちょこっとメモ
Rubyは()を省略できる。

[8] pry(main)> 'sample'.upcase()
=> "SAMPLE"
[9] pry(main)> 'sample'.upcase
=> "SAMPLE"
[10] pry(main)> 

Rubyの場合は引数がない場合は()を付けないのが好ましい

sliceメソッド(文字の切り出し)
[12] pry(main)> '文字列です。'.slice(0,3)
=> "文字列"
[13] pry(main)> 

sliceメソッドに引数を渡しました。
ここでの第一引数の「0」はシングルクオートで囲った文字列の1つ目を指し、
第二引数は第一引数からどこまでを切り出すかの値を指す。
つまり、(0,3)とは「文字列」の3文字が切り出されます。

downcaseメソッド(大文字から小文字変換)
[14] pry(main)> 'SAMPLE'.downcase
=> "sample"
[15] pry(main)> 
sizeメソッド(文字数のカウント)
[16] pry(main)> 'sample'.size
=> 6
[17] pry(main)> 
to_iメソッド(StringクラスからIntegerクラスへの変換)
[19] pry(main)> '100'.class
=> String
[20] pry(main)> '100'.to_i
=> 100
[21] pry(main)> '100'.to_i.class
=> Integer
[22] pry(main)> 
to_fメソッド(StringクラスからFloatクラスへの変換)
[23] pry(main)> '10.5'.class
=> String
[24] pry(main)> '10.5'.to_f
=> 10.5
[25] pry(main)> '10.5'.to_f.class
=> Float
[26] pry(main)> 
文字の連結

「+」演算子を使った文字の連結

[27] pry(main)> '文字の' + '連結'
=> "文字の連結"
[28] pry(main)> 
文字列の末尾に文字列を追加
[27] pry(main)> '文字の' + '連結'
=> "文字の連結"
[28] pry(main)> 

変数を使っての連結も可能

[31] pry(main)> str = '文字の'
=> "文字の"
[32] pry(main)> str << '連結'
=> "文字の連結"
[33] pry(main)> str << 'です。'
=> "文字の連結です。"
[34] pry(main)> str
=> "文字の連結です。"
[35] pry(main)> 

変数を使った際の「+」と「<<」の動作の違いについて

[35] pry(main)> str + 'プラス'
=> "文字の連結です。プラス"
[36] pry(main)> str
=> "文字の連結です。"
[37] pry(main)> 

「+」での連結では変数「str」の中身に変更はありません。

「<<」を使った場合は下記の通り、変数「str」の中身が変更されています。

[37] pry(main)> str << '追加'
=> "文字の連結です。追加"
[38] pry(main)> str
=> "文字の連結です。追加"
[39] pry(main)> 

同じことを「+」でも行う場合は連結した結果を変数に格納する。

[39] pry(main)> str = str + 'プラス'
=> "文字の連結です。追加プラス"
[40] pry(main)> str
=> "文字の連結です。追加プラス"
[41] pry(main)> 

これをより簡単に書くと次のような書き方ができる。

[41] pry(main)> str += 'プラス'
=> "文字の連結です。追加プラスプラス"
[42] pry(main)> str
=> "文字の連結です。追加プラスプラス"
[43] pry(main)> 

これは「自己代入」と呼ばれるもので動作的にはstr = str + 'プラス'と同じですが、
シンプルに書くことが出来るのでこちらを推奨します。

同じ文字列を複数回表示する
[43] pry(main)> '文字' * 10
=> "文字文字文字文字文字文字文字文字文字文字"
[44] pry(main)> 

・文字列の中で式を展開する
※非常によく使用される!!

[45] pry(main)> two = '二'
=> "二"
[46] pry(main)> "1+1は#{two}"
=> "1+1は二"
[47] pry(main)> 

注意点として文字列の中で式を展開する場合はダブルクオートで括る必要があります。
シングルクオートだと式が展開されません。

[47] pry(main)> three = '三'
=> "三"
[48] pry(main)> '1+2は#{three}'
=> "1+2は\#{three}"
[49] pry(main)> 

ちょこっとメモ
#{}の中に直接式を書くことも出来る。

[49] pry(main)> "1+1は#{1+1}"
=> "1+1は2"
[50] pry(main)> 

以上Stringオブジェクトの覚書でした〜