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)>
変数を使っての連結も可能
[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オブジェクトの覚書でした〜