.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. C#
  5. C#で文字列を比較。Compare・Equalsメソッドの使い方

C#で文字列を比較。Compare・Equalsメソッドの使い方

  • C#
  • プログラミング言語
公開日時:   更新日時:
C#で文字列を比較。Compare・Equalsメソッドの使い方
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    C#で文字列を比較する方法は、「Compareメソッド」と「Equalsメソッド」の二つがあります。
    一見どちらも同じように思えますが、両者の比較基準は全く異なります。それぞれの用途に合った使い方ができるように、これら二つの比較メソッドは覚えましょう。

    プログラマー
    Compareメソッド・EqualsメソッドはJavaなどの言語にもありますよね。
    プロジェクト
    マネージャー
    そうですね。これらは使い方を間違えやすいので、正しく覚えてくださいね。

    文字列の「並び順」を比較するCompareメソッド

    Compareメソッドは、文字列AとBの並び順を比較するメソッドで主にソートや条件分岐に使われます。

    下記のサンプルコードをもとに解説します。

    実行結果を見てわかるとおり、「Compareメソッド」では-1 / 0 / 1の数値が返ってきます。

    • ・AがBよりも順番が前:-1
    • ・AとBの値が同じ:0
    • ・BがAよりも順番が後:1

    先ほどのサンプルコードの場合、strAに「A」・strBに「B」が代入されています。
    AはBよりも順番が前なので、上記のような実行結果になっています。

    今回は簡単な例を挙げましたが、例えばstrAに「ABC」・strBに「abc」が代入されていた場合、順番は大文字→小文字になります。
    ※オプションで指定すれば“大文字・小文字の区別をなしにする”こともできます。

    文字列「そのもの」を比較するEqualsメソッド

    Equalsメソッドは、大文字・小文字も区別し「AとBが全く同じ文字列かどうか」を判定するメソッドです。
    では、こちらもコードを見ながら使い方を確認していきましょう。

    至って簡単な例ですが、Equalsメソッドを用いて「strAとstrBが同じ値かどうか」を判定しています。
    加えて、上記のコードの場合はstrAにもstrBにも同じ「あいうえお」が代入されているため、実行結果は“同じ”と出力されます。

    ★補足★
    Javaなどでは、よく※1同一性・※2同値性と言われ「==」よりもEqualメソッドを使うよう推奨されています。
    しかしC#では、Stringの定義に「==」がオーバーライドされており、「==」でもEqualsメソッドと同じ効果が得られます。

    ※1同一性…変数の参照先が同じ
    ※2同値性…変数の値が同じ

    ちなみに、もし大文字・小文字を区別したくない場合、下記のようにEqualsメソッドの引数の中に「StringComparison, OrdinalIgnoreCase」と記述すると、ABCとabcでも実行結果は“同じ”と出力されます。

    もちろん、大文字・小文字以外にも様々な指定ができるので興味がある方は色々試してみてください。

    プログラマー
    C#の文字列の比較のメソッド、よく分かりました!
    プロジェクト
    マネージャー
    C#のメソッドをマスターするには知識と実践が大事です!まずは演習問題などからチャレンジしてみましょう。

    CompareメソッドとEqualsメソッドを使いこなそう

    このように、「Compareメソッド」と「Equalsメソッド」の使い方は全く異なります。
    特にCompareメソッドは、「どういう場合に-1でこのようなケースに1が返ってくるのか」など間違えやすいため、この機会に使いこなせるようにしましょう。

    >>>C#の案件を探すならFEnet .NET Navi

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    C#新着案件New Job