この章ではstring(文字列)クラスについて説明します。
今まではダブルクォートやシングルクォートを付けた文字列を扱ってきましたが、これらはstringクラスのオブジェクトです。
「”犬 “」という文字列は
ここからはstringクラスに関する便利な機能について説明します。
初めに文字列のサイズを取得する方法について説明します。
例をみてみましょう。
この例の結果は上から「5」と「8」です。
バイト数を取得したい場合は
では例をみてみましょう。
次はsplitメソッドについて説明します。
では例をみてみましょう。
区切り指定文字は配列には入りません。
この例は文字列を
結果は
次の例をみてみましょう。
結果は
次の例をみてみましょう。
変数aの文字列は
カラ文字も含めて分割したい場合は第2引数をマイナス指定します。
この例の結果は
このカラ文字を分割時に削除したい場合はsplitメソッドの第 2引数に0を指定してください。
もしくは
結果は
次の例をみてみましょう。
結果は
「”猫”」と
では例をみてみましょう。
添え字は一番前が0で次が
これは配列の添え字と考え方は一緒です。
この例の結果は「s」です。
その他の例をみてみましょう。
結果は「あ」です。
次は添え字を使って、文字列の一部の中身を変えます。
結果は「stoing」です。
次は「ここからここまで」という指定方法で要素を上書きする方法について説明します。
次は文字列同士をつなげる方法について説明します。
では例をみてみましょう。
結果は「string123」です。
他の方法でも文字列同士をつなげることは出来ますので例をみてみましょう。
これらを使った場合は元の文字列自体の値が変わります。
次は文字列同士を比較する方法について説明します。
では例をみてみましょう。
一致していればtrue、一致していなければfalseになります。
次の例をみてみましょう。
一致していなければtrue、一致していればfalseになります。
次の例は文字列を繰り返す演算子について説明します。
この例では
結果は
次は文字列の中の文字が何番目にあるのかを調べる方法について説明します。
indexメソッドは前から検索を始めて、rindexメソッドは後ろから検索を始めます。
しかし、何番目にあるのかを数えるのはindexでもrindexでも前からです。
a.index(“n”)は前から検索をするので、結果は4です。0から数えて4番目にあると言う意味です。
a.rindex(“n”)は後ろから検索するので、結果は16です。
ここで注意して欲しいのは後ろから指定文字を検索をするのですが、結果である指定文字の位置の特定は前から数えると言うことです。
では次に進みます。
文字列の中の何番目にあるかでは無くて、ただその文字が存在するかどうかを調べるには
含まれるときはtrue、含まれないときにはfalseを返します。
では例をみてみましょう。
次は文字列の一部分を削除するslice!メソッドについて説明します。
では例をみてみましょう。
次の例をみてみましょう。
次の例をみてみましょう。
次はユーザーに何かを入力してもらう時に使うgetsメソッドについて説明します。
では例をみてみましょう。
そして、「65」と、入力すると、その入力した結果がageに代入され、結果が出力されます。
ここで気を付けてほしいことは入力値が入っているage変数には改行も一緒に入っていますので
この例ではユーザーが入力した文字列の改行を取り除きます。
結果は以下の通り、改行が取り除かれているのが分かります。
次はchompメソッドと同じようなメソッドのchopメソッドやchop!メソッドについて説明します。
chopメソッドは文字列の末尾が改行でも普通の文字でも関係なく、末尾を削除した新しい文字列を作成します。
chop!メソッドはchopメソッドと機能が同じですが、新しい文字列を作成するのではなく、元の文字列自体から末尾の文字を取り除いたものを作成します。
chopメソッドの例をみてみましょう。
結果は以下の通りです。
次はeach_lineメソッドについて説明します。このメソッドは繰り返し構文の一種ですが、文字列を指定文字で分割して、一行ずつ取り出してくれます。
では例をみてみましょう。
引数を省略するとデフォルトでは
次はeach_byteメソッドについて説明します。
では例をみてみましょう。
結果は「8297」です。
R の文字コードが82で、aの文字コードが97なので、8297が出力されます。
次はeach_charメソッドについて説明します。
では例をみてみましょう。
結果は「1+2+3+4+」ですが、このように文字と文字の間に何か他の要素を入れたりすることが出来ます。
変数の値を他の文字と結びつけるには
次は文字列の中から特定の要素を削除するdeleteメソッドとdelete!メソッドについて説明します。
では例をみてみましょう。
delete!メソッドは新しい文字列を作成するのではなく、元の文字列から特定の要素を削除した文字列を作成します。
結果は「いうえお」です。
次の例をみてみましょう。
次は文字列を浮動小数点数(Floatオブジェクト)に変換するto_fメソッドについて説明します。
では例をみてみましょう。
結果は以下の通りです。
文字列を10進数の整数に変換するto_iメソッドについて説明します。
では例をみてみましょう。
3.789@の中の「@」のように整数とは関係ない要素は削除されます。
結果は以下の通りです。
次はreverse!メソッドとreverseメソッドについて説明します。
では例をみてみましょう。
reverseメソッドは文字列を逆順に並べた新しい文字列を作成します
reverse!メソッドは元の文字列の順序を逆順にしたものを作成します。
結果は「おえういあ」です
次の例をみてみましょう。
次は文字列を他の文字列に変更するreplaceメソッドについて説明します。
では例をみてみましょう。
この例では「あいうえお」を「かきくけこ」に書き替えます。
結果は「かきくけこ」です。
次は小文字を大文字に変換するupcase!メソッドとupcaseメソッドについて説明します。
では例をみてみましょう。
upcase!メソッドは元の文字列を小文字から大文字に変換した文字列を作成します。
結果は「ABCD」です。
次の例を例をみてみましょう。
次は大文字を小文字に変換するdowncase!メソッドとdowncaseメソッドについて説明します。
では例をみてみましょう。
downcase!メソッドは新しい文字列を作成するのではなく、元の文字列を大文字を小文字に変換した文字列を出力します。
結果は「abcd」です。
次の例をみてみましょう。
次は文字列がカラかどうかを調べるempty?メソッドについて説明します。
では例をみてみましょう。
結果は「カラです」が出力されます。
次は文字列の中の特定の文字の要素数を調べるcountメソッドについて説明します。
では例をみてみましょう。
では例をみてみましょう。
capitalize!メソッドは新しい文字列を作成するのではなく、元の文字列の先頭の文字を大文字して、残りの文字列は小文字にする文字列を作成します。
結果は「Abcd」です。
次の例をみてみましょう。
次は文字列の最初の文字を取り除くchrメソッドについて説明します。
では例をみてみましょう。
結果は文字列の最初の文字「A」が出力されます。
次は文字列をカラ文字にするclearメソッドについて説明します。
では例をみてみましょう。
つまりカラ文字です。