C#の文字列演算子とは?等価演算子(==)と不等価演算子(!=)の使い方を解説
C#には、文字列を比較するための演算子が2つ用意されています。それが「等価演算子(==)」と「不等価演算子(!=)」です。これらの演算子は、2つの文字列の内容が一致しているかどうかを判定し、結果をbool型(true / false)として返します。
C#の文字列は参照型ですが、== 演算子による比較はオブジェクトの参照ではなく「文字列の値」に基づいて行われる点が特徴です。そのため、内容が同じであれば異なるインスタンスでも true と判定されます。
等価演算子(==)の使用例
まずは、等価演算子を使って2つの文字列が等しいかどうかを判定する例を見てみましょう。
using System;
public class Demo {
public static void Main() {
string str1 = "Amit";
string str2 = " ";
Console.WriteLine("string1はnullまたは空文字列か? = " + string.IsNullOrEmpty(str1));
Console.WriteLine("string2はnullまたは空文字列か? = " + string.IsNullOrEmpty(str2));
Console.WriteLine("string1とstring2は等しいか? = " + (str1 == str2));
}
}ポイントは、比較式を括弧 ( ) で囲んでいる点です。括弧を省略すると、文字列の連結(+)が先に評価されてしまい、意図しない結果になります。比較と連結を同時に行う場合は、必ず括弧で優先順位を明確にしましょう。
実行結果
string1はnullまたは空文字列か? = False string2はnullまたは空文字列か? = False string1とstring2は等しいか? = False
str1は "Amit"、str2は半角スペース " " という異なる内容の文字列であるため、比較結果は False(等しくない)となります。
不等価演算子(!=)の使用例
続いて、不等価演算子を使った例を見てみましょう。!= は、2つの文字列が等しくない場合に true を返します。
using System;
public class Demo {
public static void Main() {
string str1 = "abcdef";
string str2 = "abcdef";
Console.WriteLine("string1はnullまたは空文字列か? = " + string.IsNullOrEmpty(str1));
Console.WriteLine("string2はnullまたは空文字列か? = " + string.IsNullOrEmpty(str2));
bool val = str1 != str2;
Console.WriteLine("str1とstr2は等しくないか? = " + val);
}
}実行結果
string1はnullまたは空文字列か? = False string2はnullまたは空文字列か? = False str1とstr2は等しくないか? = False
この例では、str1 と str2 はどちらも "abcdef" という同じ内容の文字列なので、!= の結果は False(等しくない、つまり両者は等しい)となります。
まとめ
- C#の文字列比較演算子は ==(等価)と !=(不等価)の2種類
- 比較は文字列の「値」に基づいて行われ、結果はbool型で返る
- nullや空文字列のチェックには string.IsNullOrEmpty() が便利
- 文字列連結(+)と比較を同時に行う場合は、括弧で評価順序を明確にする
-
Pythonで文字列を別の文字列に変換できるか判定する方法
問題の概要 同じ長さを持つ2つの文字列 str1 と str2 が与えられます。0回以上の「変換」操作を繰り返すことで、str1 を str2 へ変換できるかどうかを判定してください。 ここでいう1回の変換とは、str1 内に出現するある1種類の文字を、すべて別の小文字の英字へ一括して置き換える操作を指します。例えば、文字 a をすべて c に変えるといった具合です。 具体例 str1 = aabcc、str2 = ccdee の場合、出力は True になります。手順としては、まず c を e に変換し、次に b を d に、最後に a を c に変えればよいためです。 このとき重要なのは
-
Pythonの文字列に対する論理演算子(and・or)の挙動と使い方
Pythonでは、論理演算子 and と or を文字列に対しても適用できます。空文字列()はブール値として False と評価されます。まずは、この2つの論理演算子がそれぞれどのような動作をするのかを確認しましょう。 and演算子・or演算子の基本動作 and 演算子は、式の中に偽(falsy)と評価される値があれば最初のその値を返し、すべて真(truthy)であれば最後の値を返します。 一方、or 演算子は、式の中に真(truthy)と評価される値があれば最初のその値を返し、すべて偽(falsy)であれば最後の値を返します。 演算結果 x and yx が偽なら x、そうでなければ