C#で文字列を比較したいんだけど、どうやったらいいの?
基本的には’==’という演算子を使えばいいよ。あと、他の方法も知っておくと幸せになれるからここで覚えようね。
C#の文字列比較方法は3つ!
基本的には演算子、大文字小文字を無視したい時はstring.Equalsを使おう
- C#の文字列比較の3つの方法
- それぞれの特徴と注意点
C#での文字列比較の方法3つ
C#での文字列比較の方法は以下の3つがあり、それぞれ以下のような特徴があります。
- 演算子を使う方法:シンプルで手軽
- string.Equalsを使う方法:大文字小文字の比較ができる
- string.Compareを使う方法:順番の比較ができる
では、それぞれの使い方を把握していきましょう。
演算子(”==”など)は手軽さ○
C#における演算子を使用した文字列比較は、比較演算子 ==
と !=
を使用して行われます。
以下に演算子を使った文字列比較の方法を説明します。
string str1 = "apple";
string str2 = "banana";
if (str1 == str2)
{
Console.WriteLine("文字列は等しいです。");
}
else
{
Console.WriteLine("文字列は等しくありません。");
}
上記のコードでは、==
演算子を使用して str1
と str2
の文字列を比較しています。
もし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)
を使用して str1
と str2
の文字列を比較しています。
もし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)
を使用して str1
と str2
の文字列を比較しています。
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#の文字列比較についてお伝えしました。
今日も学んだあなたが偉い!
プログラミングをゼロから学ぶあなたはこちらから▼
HTMLをゼロから学ぶあなたはこちらから▼