記載されている内容は2019年01月29日時点のものです。現在の情報と異なる可能性がありますので、ご了承ください。記事に記載されている情報は自己責任でご活用いただき、本記事の内容に関する事項については、専門家等に相談するようにしてください。「Rubyの文字列を連結したい。同じ文字列を何回も入力したくない」この記事では、そういった悩みを抱えている方に、実例を挙げながら文字列の連結方法や、どのメソッドが適切かを説明しています。Rubyの文字列の連結方法を理解したい方は、読んでみてください。文字列の連結とはRubyの文字列の連結方法どのメソッドを使うべきか文字列の連結とはhttps://www.ruby-lang.org/ja/about/logo/Rubyで文字列の使い方を覚えると、文字列を変数に代入することで色々な場面で呼び出して使うことができ、大変便利です。文字列入力を色々と試していくと、一方の文字列にさらに別の文字列を繋げることができればさらに便利であることに気づきます。その一番わかりやすい例が氏名です。名前(フルネーム)には苗字と名前(ファーストネーム)がありますが、相手との関係性やその場の状況によって苗字だけが必要な場面と名前が必要な場面、そしてフルネームが必要な場面があります。そこで、変数ファーストネームと変数ラストネームを作っておき、この二つを合わせることで、状況に応じてフルネームを作ることができます。その都度フルネームを入力するのでは、手間もかかりますし、何より入力ミスのリスクがあります。文字列の連結はシンプルで覚えやすいですし、これを覚えると配列の連結にも応用できるので、この機会に覚えておきましょう。Rubyの文字列の連結方法Rubyで文字列を連結するためには、concatメソッド、+演算子を使う方法、<<演算子を使う方法の3つがあります。Rubyでは多くのメソッドがありますが、文字列の連結方法はこの3つさえ理解できれば十分ですので、覚えておきましょう。今回説明するメソッドは主に二つの目的によって使い分けられます。一つ目は、すでにある文字列に対して文字列を加え、さらに長い文字列を作る場合です。具体例としては、すでに作っている文字列nameに対して、敬称「様」を加える場合、すでに作成済みの都道府県名に対して「県」などの表記を付け加える時に使えます。二つ目は、二つの文字列をつなげて新しい文字列を作る場合です。具体的には、冒頭で説明したように、ファーストネームとラストネームを合わせてフルネームを作る場合が該当します。実際に例を通してみるとわかりやすいので、これから実際の使い方を説明します。concatメソッドで文字列を連結するRubyですでにある文字列に対して文字列を加え、さらに長い文字列を作りたい場合には、concatメソッドを使用することができます。顧客リストが作られていると仮定します。対内的には、通常敬称は省いて入力されていることが多いですが、Web上に表示するには失礼に当たる場合があります。その際にconcatメソッドが有効です。greeting#→"こんにちは、山田様"最初に名前をいくつか変数に代入しており、今回はname1の”山田”を使うことで、最終的に挨拶文まで作っています。次でconcatメソッドの実際の使い方を説明します。上記で、Rubyのconcatメソッドの使用例を見てもらいました。concatメソッドはstring1.concat(string2)で使用可能です。上述例では、string2に文字列が代入されている変数を入れましたが、もちろん直接文字列を入力することも可能です。prefecture#→"秋田県"concatメソッドを使う際、注意しなくてはいけないのが、既にある文字列に新たな文字列を加えると、当初の変数が書き換わってしまうということです。concatメソッドの使用後は、name1は"山田様"、prefectureは"秋田県"になってしまうので、不都合が生じます。最初の例で言うと、たとえ新たに"polite_name"という変数を作り、そこにconcatメソッドを使って代入しても、name1まで変わってしまいます。+演算子で文字列を連結する上述したconcatメソッドの問題点を解消するために、Rubyでは+演算子を使うことができます。+演算子は数式の+からイメージがつくように、両隣をつなぎ合わせる役割を持っています。変数first_nameと変数last_nameをつなぎ合わせ、変数full_nameを作る事例を見てみましょう。last_name#→"Yamada"いかがでしょう。実際の利用方法については、次の項目で説明していきます。ここではまず、結合した後もfirst_nameとlast_nameは当初の文字列のままであり、新たに設定したfull_nameでフルネームが作られていること確認してください。+演算子の使い方Rubyではstring1+string2とすることで二つの文字列をつなげて、一つの文字列を作ることができることが上記でわかります。元の文字列が変わらないことがconcatメソッドと異なる点です。concatメソッドの例で作った挨拶文も、+演算子を使うことでよりシンプルに読みやすくコーディングすることができます。honorific#→"こんにちは鈴木様"このように、コードを見ただけで表示されるものがイメージしやすいです。+を使わずに#{}を使う方法もありますが、まずは+演算子に慣れましょう。<<演算子で文字列を連結するここまで、Rubyではconcatメソッドと+演算子がそれぞれ使う場面が異なることを説明してきました。+演算子の方がイメージしやすく、スペルミスの心配もないので極力こちらを使いたくなります。concatメソッドだからできることもあるので、全てを+演算子で対応するわけにもいきません。そこで、concatメソッドと同様の結果を簡単にもたらすことができるのが<<演算子です。prefectureこのように、<<という一つの記号を使うだけで"秋田"と"県"をつなげています。+演算子と異なり、演算子使用以降はprefectureには"県"が必ずついて来ることに注意してください。string2として使用することができます。先ほど述べたように、string2が加わったstring1はその先も新たな文字列に変わってしまうことに注意しましょう。first_name#→"TaroYamada"いかがですか。変数full_nameだけでなく、first_nameも書き換わっていることがわかります。このような事例では、+演算子を使うのが良いでしょう。どのメソッドを使うべきか以上、Rubyで文字列を連結する3つの方法を説明しました。注意点として、concatメソッドと<<演算子は文字列が上書きされる一方で、+演算子では上書きされない点を覚えておきましょう。+演算子の方が使い勝手が良いようにも見えますが、処理速度を測ってみると他のメソッドよりやや遅かったです。今回のような単純な例であれば、目に見えた違いはありませんが、今後コードが複雑化するにつれ、その点も考慮してメソッドを選ぶ必要が出てくるでしょう。ここで出てきたメソッドは今後、配列など他の場面でも登場するので、ここでしっかり覚えておきましょう。file.2:営業マンとして活躍し、海外留学。file.4:独学よりもスクールで。他人と同じことはしない。