【Ruby入門】文字列の標準ライブラリnkfとヒアドキュメント
  • facebookページ
  • twitterページ
  • 2017.10.17

    【Ruby入門】文字列の標準ライブラリnkfとヒアドキュメント

    Rubyにおける文字列操作について、より高度な操作を解説します。

    nkfという文字列を操作する標準ライブラリがあります。このライブラリを使うと文字コードの変換はもちろん、カタカナをひらがなに変換、といったことが簡単にできます。

    nkfはもともとUnixで使われるコマンドですが、それをRubyで扱えるようにしたライブラリがnkfです。

    また、クウォーテーションやタグ、改行が入っていて扱いの難しい文字列でも扱うことができるヒアドキュメントについて解説します。

    nkfで文字列を変換

    ひらがなからカタカナへ変換、またはその逆の変換をするということは、意外とよく出てきます。例えば、氏名のフリガナ欄への入力値を、すべて全角カタカナへ強制的に変換する、などです。

    そのような変換は、nkfを使えばとても簡単にできます!

    ひらがなからカタカナへ

    ひらがなからカタカナへ、その逆へ変換してみましょう。

    nkfそのままでは読み込まれないライブラリなので、先頭でrequireを記述して読み込むよう指定します。

    nkfの書式は以下となります。

    [使用例]

    [実行結果]

    相互に変換できることがわかりました。

    先ほどの氏名フリガナ欄の例で、例えばデータベースへ文字列を格納する際など、すべて全角カタカナに統一したいということがあります。実は、先ほどの例は何もしなくても全角に変換されます。

    [実行結果]

    半角のまま変換したい場合は、オプションを足します。

    [実行結果]

    半角のまま変換されました。

    全角スペースを半角スペース2つに変換

    nkfは全角スペースを半角スペースにすることができます。

    [実行結果]

    半角スペース1つまたは2つに変換することができました。

    nkfはその他多数のオプションがあります。特に文字コード変換に関するオプションが多いです。Rubyのマニュアルに詳細がありますので、参照してください。

    他言語では自分で地道に組まないといけないカナ変換や全角スペースの半角化、これらがライブラリ化されているというのは、とても便利ですよね。

    ヒアドキュメント

    プログラム中で、とても長い文字列を扱うことがあります。そんなときは、ヒアドキュメントを使うと便利です。

    [書式]

    終了記号はなんでも良いのですが、慣例的にEOF(End Of File)やEOB(End Of Block)を使います。また、そのまま変数に大入できます。

    例をあげてみましょう。

    [実行結果]

    とっても長い文字列を格納することができます。例えば、こんな感じです。

    <<だけでなく、マイナスを加えて<<-とすると、インデントが使えます。ついでに、式展開も加えましょう。

    [実行結果]

    Rubyのヒアドキュメントですごいのは、オブジェクトとして扱うこともできることです。

    [実行結果]

    すべて小文字に変換されたということが大事ではなく、downcaseの戻り値をそのままEOSに渡すことができる、ということです。

    文字列を返すものならなんでも良いのですが、その例としてdowncaseを使いました。

    何に使うのか?

    ヒアドキュメントが何なのかがわかったところで、一体何に使うのか?と気になった方も多いでしょう。

    ヒアドキュメントの強みは、文字列中にタグや改行、クウォーテーションなどが混入しても全く気にする必要がないということです。

    [実行結果]

    中身がどうであろうと、問題なく表示できています。

    まとめ

    本記事では、nkfライブラリとヒアドキュメントについて解説しました。

    両方とも、活用次第ではプログラミングがとても楽になります。ぜひ自分で試してマスターしてみてくださいね!


    他のRuby入門記事はこちら

    【Ruby入門】Rubyとは何か?学習方法や将来性まで考えました!

    【Ruby入門】Ruby on Railsをやってみよう!

    【Ruby入門】環境構築(Mac/Win)

    【Ruby入門】nokogiriでスクレイピング

    【Ruby入門】データベース

    【Ruby入門】gemとライブラリ

    【Ruby入門】エラーと例外処理

    【Ruby入門】モジュール(module)とMix-in

    【Ruby入門】Procクラスとラムダ(lambda)

    【Ruby入門】ブロック

    【Ruby入門】メソッド

    【Ruby入門】クラスをコーディング(2) オブジェクト指向

    【Ruby入門】クラスをコーディング(1) classを作る

    【Ruby入門】クラスの継承、オーバーライド

    【Ruby入門】クラスとオブジェクト

    【Ruby入門】ディレクトリ(フォルダ)の作成、削除

    【Ruby入門】ファイルの移動、コピー、削除

    【Ruby入門】入力と出力

    【Ruby入門】Rubyの正規表現

    【Ruby入門】正規表現で置換する

    【Ruby入門】正規表現とは何か?

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

    【Ruby入門】CSVの基本と操作

    【Ruby入門】JSONの基本と操作

    【Ruby入門】乱数(Random)などの数値計算用クラスや端数処理

    【Ruby入門】日付の基本と操作(Time, Date)

    【Ruby入門】数値の数え上げ「upto」と四捨五入

    【Ruby入門】文字列の標準ライブラリnkfとヒアドキュメント

    【Ruby入門】数値の基本とメソッド (timesメソッド他)

    【Ruby入門】ハッシュ(hash)をeachで取り出す!その他ハッシュの応用に

    【Ruby入門】ハッシュ(hash)とシンボルの基本

    【Ruby入門】文字列の基本と表示メソッド

    【Ruby入門】Rubyの繰り返しを極める!様々な繰り返しのバリエーション

    【Ruby入門】最初はこれだけ!まずは手を動かしたい人のRuby入門

    【Ruby入門】ifとelseについて

    【Ruby入門】配列と操作(基本編)

    【Ruby入門】eachメソッドの使い方と応用例


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

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

    ポテパンフリーランス

    ポテパンフリーランス

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

    ポテパンキャリア

    ポテパンキャリア

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

    ポテパンキャンプ

    ポテパンキャンプ

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



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

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

    この記事をシェア

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

    関連ワード

    pickup









    ABOUT US

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

    READ MORE