はじめに
この記事では、「C#での大文字、小文字を区別しない時の文字列比較」について詳細に解説します。
文字列比較はプログラミングにおいて非常に一般的な操作であり、C#では複数の方法で文字列が一致するかどうかを判断できます。
しかし、一致しない場合の処理や判断基準の理解も重要です。
この記事では、様々な文字列比較のメソッドを紹介し、それぞれの使い分け方や注意点について解説します。
文字列比較の基本
文字列比較には、大文字小文字を区別する比較と区別しない比較の2種類があります。
C#で文字列を比較する最も基本的な方法は、== 演算子を使用することです。この方法は、大文字と小文字を区別して比較します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; class Program { static void Main() { string str1 = "Hello"; string str2 = "hello"; if (str1 == str2) { Console.WriteLine("文字列は一致します"); } else { Console.WriteLine("文字列は一致しません"); } } } |
出力結果
文字列は一致しません
大文字小文字を区別しない比較
大文字と小文字を区別せずに比較するには、String.Equalsメソッドを使って、StringComparison.OrdinalIgnoreCaseを引数に渡します。
この方法は、異なるカルチャ設定における大文字と小文字の区別を無視して比較します。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; class Program { static void Main() { string str1 = "Hello"; string str2 = "hello"; if (String.Equals(str1, str2, StringComparison.OrdinalIgnoreCase)) { Console.WriteLine("文字列は一致します"); } else { Console.WriteLine("文字列は一致しません"); } } } |
出力結果
文字列は一致します
文字列の部分比較
文字列の特定の部分だけを比較したい場合は、String.Compareメソッドを使用します。このメソッドは、比較する文字列の開始位置と長さを指定できます。
部分比較は、大規模なテキスト処理や特定のパターンを検索する際に役立ちます。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
using System; class Program { static void Main() { string str1 = "HelloWorld"; string str2 = "World"; if (String.Compare(str1, 5, str2, 0, 5) == 0) { Console.WriteLine("部分文字列は一致します"); } else { Console.WriteLine("部分文字列は一致しません"); } } } |
出力結果
部分文字列は一致します
文字列比較の文化圏依存
文化圏に依存した比較を行う場合は、String.CompareメソッドにCultureInfoオブジェクトとCompareOptionsを指定します。
この方法は、特定の言語や地域の文字列比較規則に従って比較を行います。
ソースコード例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System; using System.Globalization; class Program { static void Main() { string str1 = "Straße"; string str2 = "Strasse"; CultureInfo culture = new CultureInfo("de-DE"); if (String.Compare(str1, str2, culture, CompareOptions.IgnoreCase) == 0) { Console.WriteLine("文化圏において文字列は一致します"); } else { Console.WriteLine("文化圏において文字列は一致しません"); } } } |
出力結果
文化圏において文字列は一致します
パフォーマンスについて
大量の文字列比較を行う場合、パフォーマンスに注意が必要です。特に、大文字小文字を区別しない比較や文化圏依存の比較は、処理が重くなることがあります。
パフォーマンスを重視する場合は、比較方法を慎重に選び、不要な比較を避けるようにしましょう。
KindleUnlimited会員であれば、全ての本をご覧頂けます。 Linqを理解すれば、C#プログラミングの世界が変わる 第1版
まとめ
C#での文字列比較は多様な方法があり、それぞれに適した使用シナリオが存在します。
大文字小文字を区別するか、部分的に比較するか、文化圏に依存するかなど、目的に応じて適切な比較方法を選択することが重要です。
最後まで読んで頂き、ありがとうございました。少しでもお役にたてたなら幸いです!