【Ruby】concatを使って文字列や配列を結合する
  • facebookページ
  • twitterページ
  • 2020.12.18

    【Ruby】concatを使って文字列や配列を結合する

    Rubyで文字列を結合する場合、 +演算子や、 <<concatメソッドを使う方法があります。

    また、 +演算子や concatメソッドは、配列の結合にも使うことができます。

    この記事では concatメソッドなどの、Rubyで文字列・配列を結合する便利なメソッドに追加解説していきます。

    文字列を結合する

    まずは、文字列を結合する方法を見ていきましょう。

    前述のように、Rubyで文字列を結合する方法には、 +演算子、 <<および concatメソッドの3つの方法があります。

    最初に注意しなければいけなのが、 +演算子は非破壊メソッドなのに対し、 <<および concatメソッドは破壊的なメソッドであることを覚えておきましょう。

    非破壊メソッドである +演算子は、結合する変数の値は変更されず、新しいインスタンスの文字列が生成されます。破壊的メソッドである、 <<および concatメソッドは、元の変数の値が結合した文字列に変わるため、用途に合わせて使い分けましょう。

    +演算子の使い方

    まずは、非破壊メソッドである +演算子を使って文字列を結合する方法を見ていきましょう。

    以下のサンプルコードをご覧ください。

    実行結果の1行目のとおり、 +演算子の左右に指定した文字列が、結合されているのが分かります。
    また、非破壊メソッドである +は、元の変数の s1s2の値を変更しないことから、実行結果の2〜3行目には、元の変数の値が出力されています。

    ちなみに、上の例では文字列の変数同士を +演算子で結合していましたが、文字列のリテラル同士を指定しても、問題なく文字列の結合は行えます。

    String#concatの使い方

    次は、 concatメソッドの使い方を解説します。

    cancatメソッドは破壊的メソッドであるため、メソッドを呼び出した変数は、文字列結合した内容に変数の値が書き換えられます。

    それでは、次のサンプルコードをご覧ください。

    このように、 concatメソッドは文字列結合した結果を、メソッドを呼び出した変数に反映するため、 s1の変数が破壊的に書き換わっているのが分かります。

    引数を複数指定してまとめて結合する

    cancatメソッドの引数を複数指定すると、指定した引数をまとめて文字列が結合できます。

    s1の変数に対し、引数で渡した s2, s3, s4の変数が文字列結合されていることが分かります。

    String#<< の使い方

    str1 << str2ように、 <<を使って文字列を結合することもできます。

    <<も破壊的メソッドであるため、メソッドを呼び出した変数は、文字列結合をした内容に変数の値が書き換えられます。

    <<を使って文字列結合するサンプルコードを見てみましょう。

    cancatメソッド同様、 s1 << s2の行で文字列結合された結果が、 s1の変数に格納されていることが分かります。

    複数の文字列をまとめて結合する

    <<を1行に複数指定して、まとめて複数の文字列を結合できます。

    次のサンプルコードをご覧ください。

    上の実行結果のように、 <<で連結された変数を結合した結果が、 s1の変数に格納されています。

    ポテパンダの一言メモ

    String#<<は変数の中身が書き換えられる破壊的メソッドですが、 <<を使用した場合、変数の値が書き換わるのは、 <<で連結された一番左の変数のみで、それ以外の変数は影響を受けません。

    配列を結合する

    +演算子、 concatメソッドは、配列の結合にも用いることができます。

    構文もまったく同じで、前述した文字列の結合を理解できれば、配列の結合も問題なく理解できるでしょう。

    では実際に、それぞれの方法で配列を結合するサンプルコードを確認していきましょう。

    +演算子で配列を結合

    まずは、 +演算子のサンプルコードです。文字列の結合と同様に、結合する2つの配列を +演算しの両サイドに指定して結合します。

    Array#concatで配列を結合

    次に、 cancatメソッドで配列を結合するサンプルコードです。 cancatメソッドは破壊的メソッドのため、元の変数の内容は書き換わります。

    << は配列の結合では使えない

    ここまで流れで、 <<を使っても配列同士を結合できると思った方もいるかもしれませんが、配列での <<メソッドは、要素を1件追加するメソッドのため、配列同士の結合には <<を用いることはできません。

    実際に試してみましょう。

    このように、 <<は配列の末尾に要素を1件追加するメソッドのため、 array2の内容が、配列の1要素として array1の末尾に追加されています。

    さいごに

    Rubyで concatメソッドなどを使用して、文字列や配列を結合する方法を解説してきました。

    文字列の結合処理は、Rubyに限らずプログラミング全般でよく使うため、基本として是非覚えておきましょう。

    【関連記事】
    【Ruby入門】splitメソッドの使い方の応用例



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE