【Ruby入門】文字列の結合などの操作
  • facebookページ
  • twitterページ
  • 2017.11.07

    【Ruby入門】文字列の結合などの操作

    【Ruby入門】文字列の基本と表示メソッドにて文字列の基本を説明しました。

    引き続き、本記事では文字列の操作、具体的には文字列の編集や検索などを解説します。

    プログラム中で適宜コメントを入れています。 「# ・・・」の箇所です。もちろん、動作をお試しになるときは書く必要はありません。

    文字列の結合

    +で文字列をつなげる

    文字列をつなげるには、+を使います。

    [実行結果]

    +を使い、文字列の結合ができました。

    concatや<<で文字列をつなげる

    +とは別に、文字列をつなげる方法を解説します。concatと<<です。

    [実行結果]

    concatを使い、文字列の結合ができました。次に、<<を試してみましょう。

    [実行結果]

    concatと<<の両方とも、同じように結合できました。

    +とconcatや<<のちがい

    +とconcatや<<とは動作が異なります。以下のプログラムを実行すれば一目瞭然です。結合後のstr1に注目してください。

    まずは+からです。

    [実行結果]

    次に、<< です。concatでも動作は同じです。

    [実行結果]

    お分かりでしょうか?str1の内容が変わっています。

    +は文字を結合して新たに文字列を生成するので、結合前後で内容は変わりません。

    concatや<<は、元の文字列に結合するので、結合後に内容が変わってしまいます。

    用途に応じて使い分けてください。

    文字列の比較

    文字列の比較は、==や!=といった比較演算子で可能です。

    [実行結果]

    ==または=!によって比較し、結果が論理値で表示されました。

    文字列の検索

    文字列中に対象とする文字列が含まれるどうかを調べる方法です。

    単純に含まれるかどうかを知りたいときはinclude?を、左から何文字目かを知りたいときはindexを使います。

    [実行結果]

    含まれていればtrue、含まれていなければfalseが表示されました。次はindexです。

    [実行結果]

    indexは、対象とする文字列に検索する文字列が含まれていないときはnilを返します。(もちろん実行すれば(空白)とは表示されず、何も表示されません)。

    特定の文字列を削除する

    対象とする文字列から、特定の文字列を消したいときはdeleteを使います。

    [実行結果]

    指定した文字列が消えました。

    末尾の改行コードを削除する

    末尾の改行コードを削除したいときはchompを使います。

    それが何に役立つのか?と思われるかもしれません。具体例をあげてみましょう。

    文字を入力しEnterすると文字列の長さを返す、というプログラムを考えます。入力した値を得るのはgets、文字列長はlengthを使います。

    実行すると入力待ち状態になるので、abcdeと入力してEnterします。

    [実行結果]

    ・・・あれ?変ですね。5文字のはずが6と返ってきました。

    実は、Enterしたときに文字列に改行コードが付加されて、「abcde + 改行コード」がstrに代入されるから6となります。

    そこでchompを使います。

    [実行結果]

    今度は大丈夫です。5と返ってきました。

    特定の位置から文字列を切り出す

    先頭何文字目から何文字を切り出す、というのは開発現場ではよく出てきます。そんなときは、配列と同様にインデックスを指定します。

    [実行結果]

    配列のインデックスと同じ考えなので、1を指定すると2文字目になりますので注意してください。

    その他の文字列を操作するメソッド

    文字列を操作するとても便利なメソッドを、順番に解説します。解説する3つのメソッドはすべて破壊的メソッドを持ちます。

    破壊的メソッドとは、中身を書き換えてしまうメソッドです。詳しくは「最初はこれだけ!まずは手を動かしたい人のRuby入門」を確認してください。

    逆順にするreverse

    reverseは文字列の並びを逆順にします。

    [実行結果]

    すべて大文字にするupcase

    upcaseは、文字列をすべて大文字に変換します。

    [実行結果]

    すべて小文字にするdowncase

    downcaseは、文字列をすべて小文字に変換します。

    [実行結果]

    小文字と大文字を逆転させるswapcase

    もちろん、大文字と小文字を反転させるメソッドもあります。swapcaseです。

    [実行結果]

    まとめ

    文字列の操作を解説しましたが、いかがでしたか?

    他言語でできることは、Rubyでも一通りそろっていることがお分かりいただけたと思います。

    ご自身でも何度も試して、ぜひ習得してくださいね!


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

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

    関連ワード

    pickup









    ABOUT US

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

    READ MORE