C# PR

C#で幸せになる文字列比較の方法3つ

C#で幸せになる文字列比較の方法
記事内に商品プロモーションを含む場合があります
ひなドリ

C#で文字列を比較したいんだけど、どうやったらいいの?

わかドリ

基本的には’==’という演算子を使えばいいよ。あと、他の方法も知っておくと幸せになれるからここで覚えようね。

この記事でわかること
  • C#の文字列比較の3つの方法
  • それぞれの特徴と注意点

C#での文字列比較の方法3つ

C#での文字列比較の方法は以下の3つがあり、それぞれ以下のような特徴があります。

  1. 演算子を使う方法:シンプルで手軽
  2. string.Equalsを使う方法:大文字小文字の比較ができる
  3. string.Compareを使う方法:順番の比較ができる

では、それぞれの使い方を把握していきましょう。

演算子(”==”など)は手軽さ○

C#における演算子を使用した文字列比較は、比較演算子 ==!= を使用して行われます。

以下に演算子を使った文字列比較の方法を説明します。

string str1 = "apple";
string str2 = "banana";

if (str1 == str2)
{
    Console.WriteLine("文字列は等しいです。");
}
else
{
    Console.WriteLine("文字列は等しくありません。");
}

上記のコードでは、== 演算子を使用して str1str2 の文字列を比較しています。

もし2つの文字列が完全に一致する場合、条件式は true となり、”文字列は等しいです。” というメッセージが表示されます。

一致しない場合は、条件式は false となり、”文字列は等しくありません。” というメッセージが表示されます。

演算子を使った比較の注意点

演算子を使用した文字列比較には以下の注意点があります。

大文字と小文字の区別はできない

演算子を使用した比較は、デフォルトでは大文字と小文字を区別します。

つまり、”apple” と “Apple” は異なる文字列として扱われます。

完全一致の比較しかできない

演算子を使用した比較では、文字列の比較方法を制御するためのオプションはありません。

これらの注意点を把握して、演算子を使用した文字列比較を行う際には、適切なチェックと設定を行うようにしましょう。

わかドリ

つまり「完全一致」の時だけに使える比較方法ということだね

ひなドリ

あんまり融通は利かなそう。大文字小文字を無視して比較するとかはどうしたらいいの?

わかドリ

それは次で説明するね

string.Equalsは大文字小文字無視の比較ができる

C#における string.Equals メソッドを使用した文字列比較も可能です。

以下に string.Equals の使い方と注意点を説明します。

string str1 = "apple";
string str2 = "banana";

if (str1.Equals(str2))
{
    Console.WriteLine("文字列は等しいです。");
}
else
{
    Console.WriteLine("文字列は等しくありません。");
}

上記のコードでは、str1.Equals(str2) を使用して str1str2 の文字列を比較しています。

もし2つの文字列が完全に一致する場合、条件式は true となり、”文字列は等しいです。” というメッセージが表示されます。

一致しない場合は、条件式は false となり、”文字列は等しくありません。” というメッセージが表示されます。

大文字と小文字の区別

デフォルトでは、string.Equals メソッドは大文字と小文字を区別します。

つまり、”apple” と “Apple” は異なる文字列として扱われます。

もし大文字と小文字を区別せずに比較したい場合は、StringComparison.OrdinalIgnoreCase を指定して String.Equals メソッドを呼び出します。

以下の例では、”apple”と”Apple”は同じ文字列として判定されます。

    string str1 = "apple";
    string str2 = "Apple";
    
    if (str1.Equals(str2, StringComparison.OrdinalIgnoreCase))
    {
        Console.WriteLine("文字列は等しいです。");
    }
    else
    {
        Console.WriteLine("文字列は等しくありません。");
    }

    string.Equals メソッドの注意点

    Null チェック

    string.Equals メソッドは null チェックを行いません。

    以下の場合、str1=nullであるため、NullReferenceExceptionが発生します。

    string str1 = "apple";
    string str2 = null;
    
    if (str1.Equals(str2))  // NullReferenceExceptionが発生
    {
        Console.WriteLine("文字列は等しいです。");
    }
    else
    {
        Console.WriteLine("文字列は等しくありません。");
    }

    それを避ける場合、以下のようにNullチェックを入れておくといいでしょう。

    string str1 = "apple";
    string str2 = null;
    
    if (str1 != null && str1.Equals(str2))  // nullチェックを追加する
    {
        Console.WriteLine("文字列は等しいです。");
    }
    else
    {
        Console.WriteLine("文字列は等しくありません。");
    }

    これらの注意点を把握して、string.Equals メソッドを使用する際には適切なチェックと設定を行いましょう。

    わかドリ

    大文字小文字を無視した比較をしたい場合はstring.Equalsを使おう!

    string.Compareは順番の比較ができる

    C#における string.Compare メソッドを使用した文字列比較は、2つの文字列の辞書順比較を行うために使用されます。

    以下に string.Compare の使い方と注意点を説明します。

    string str1 = "apple";
    string str2 = "banana";
    
    int result = string.Compare(str1, str2);
    
    if (result == 0)
    {
        Console.WriteLine("文字列は等しいです。");
    }
    else if (result > 0)
    {
        Console.WriteLine("str1の方が大きいです。");
    }
    else
    {
        Console.WriteLine("str2の方が大きいです。");
    }

    上記のコードでは、string.Compare(str1, str2) を使用して str1str2 の文字列を比較しています。

    string.Compare メソッドは、2つの文字列の比較結果を整数値で返します。比較結果の意味は以下の通りです。

    • result が 0 の場合: 文字列は等しいです。
    • result が正の値の場合: str1 の方が辞書順で大きいです。
    • result が負の値の場合: str2 の方が辞書順で大きいです。

    大文字と小文字の区別

    デフォルトでは、string.Compare メソッドは大文字と小文字を区別します。

    もし大文字と小文字を区別せずに比較したい場合は、StringComparison.OrdinalIgnoreCase を指定します。

    string str1 = "apple";
    string str2 = "Apple";
    
    int result = string.Compare(str1, str2, StringComparison.OrdinalIgnoreCase);
    
    if (result == 0)
    {
        Console.WriteLine("文字列は等しいです。");
    }
    else if (result > 0)
    {
        Console.WriteLine("str1の方が大きいです。");
    }
    else
    {
        Console.WriteLine("str2の方が大きいです。");
    }

    string.Compare メソッドの注意点:

    文字列の比較方法の制御

    string.Compare メソッドは、比較オプションを指定して文字列の比較方法を制御することができます。

    例えば、大文字と小文字を区別せずに比較したりするなど適切な比較オプションを指定することで、必要な比較を行うことができます。

    string str1 = "apple";
    string str2 = "Banana";
    
    int result = string.Compare(str1, str2, StringComparison.CurrentCultureIgnoreCase);
    
    if (result == 0)
    {
        Console.WriteLine("文字列は等しいです。");
    }
    else if (result > 0)
    {
        Console.WriteLine("
    
    str1の方が大きいです。");
    }
    else
    {
        Console.WriteLine("str2の方が大きいです。");
    }

    わかドリ

    単純な文字列比較ではないということ。文字列の順番などを比較したい時に使おう。

    このページではこれだけ覚える!

    C#の文字列比較方法は3つ!

    わかドリ

    演算子、string.Equals、string.Compare

    ひなドリ

    よし、わかった

    基本的には演算子でOK!

    わかドリ

    大文字小文字を無視したい時はstring.Equalsを使おう

    ひなドリ

    よし、わかった

    今回のゼロわか

    この記事でわかったこと
    • C#の文字列比較の3つの方法
      • 演算子
      • string.Equals
      • string.Compare
    • それぞれの特徴と注意点
      • 演算子を使う方法:シンプルで手軽
      • string.Equalsを使う方法:大文字小文字の比較ができる
      • string.Compareを使う方法:順番の比較ができる

    お疲れさまでした。

    今回は、C#の文字列比較についてお伝えしました。

    わかドリ

    今日も学んだあなたが偉い!

    ABOUT ME
    わかドリ
    現役SE。 プログラミング未経験で ブラック企業に入社したが、 何とか転職したりして10年生き残った。 プログラミング未経験だった かつての自分であるひなドリを救うため、 プログラミングのブログを運営。