[ C# / VB.NET ] 文字列を完全一致、前方一致で比較する ( 大文字・小文字の区別 )

Pocket

ここでは、C# と VB.NET において文字列を完全一致と前方一致で比較するサンプルコードを掲載しています。

スポンサーリンク

文字列の比較(完全一致、前方一致)

ここでは、文字列を完全一致で比較するために string.Equals を、前方一致で比較するために string.StartsWith を使用しています。また、第2パラメータを与えることで大文字と小文字の区別を行うか、行わないかを指定することができます。

以下、サンプルコードになります。詳細はサンプル内のコメントも確認ください。

VB.NET

    Dim str As String = "testString" ' 比較対象の文字列

    Dim ret As Boolean

    ' 大文字・小文字は区別される(完全一致)
    ret = str.Equals("testString")
    Console.WriteLine(ret.ToString()) ' True

    ' 大文字・小文字は区別される(完全一致)
    ret = str.Equals("testSTRING")
    Console.WriteLine(ret.ToString()) ' False

    ' 大文字・小文字を区別しない(それ以外は完全一致)
    ret = str.Equals("testSTRING", StringComparison.OrdinalIgnoreCase)
    Console.WriteLine(ret.ToString()) ' True

    ' 大文字・小文字を区別しない(前方一致で比較)
    ret = str.StartsWith("TEST", StringComparison.OrdinalIgnoreCase)
    Console.WriteLine(ret.ToString()) ' True

C#

    string str = "testString"; // 比較対象の文字列

    bool ret;

    // 大文字・小文字は区別される(完全一致)
    ret = str.Equals("testString");
    Console.WriteLine(ret.ToString()); // True

    // 大文字・小文字は区別される(完全一致)
    ret = str.Equals("testSTRING");
    Console.WriteLine(ret.ToString()); // False

    // 大文字・小文字を区別しない(それ以外は完全一致)
    ret = str.Equals("testSTRING", StringComparison.OrdinalIgnoreCase);
    Console.WriteLine(ret.ToString()); // True

    // 大文字・小文字を区別しない(前方一致で比較)
    ret = str.StartsWith("TEST", StringComparison.OrdinalIgnoreCase);
    Console.WriteLine(ret.ToString()); // True

Windows のファイル名であったり、エクセルのシート名なども大文字・小文字の区別は行われません。Windows では、何気に気にしないことがありますので、このような機能は Windows ではどうしても必要となったのでしょう。

比較条件の設定値 ( StringComparison 列挙体 )

上記では、大文字・小文字の区別を行わないために、OrdinalIgnoreCase を与えましたが、他には下記のパラメータも与えることができます。用途に応じて変更する必要があります。特に日本語を扱う場合には、念入りに確認する必要があります。

正直よくわかりません。個人的には、愚直に確認することになりそうです。いんばりあんとかるちゃ?

設定値説明
CurrentCultureカルチャに依存した並べ替え規則と、現在のカルチャを使用して、文字列を比較します。
CurrentCultureIgnoreCaseカルチャに依存した並べ替え規則と現在のカルチャを使用し、比較する文字列の大文字と小文字を区別しないで文字列を比較します。
InvariantCultureカルチャに依存した並べ替え規則とインバリアント カルチャを使用して文字列を比較します。
InvariantCultureIgnoreCaseカルチャに依存した並べ替え規則とインバリアント カルチャを使用し、比較する文字列の大文字と小文字を区別しないで文字列を比較します。
Ordinal序数 (バイナリ) の並べ替え規則を使用して文字列を比較します。
OrdinalIgnoreCase序数 (バイナリ) の並べ替え規則を使用し、比較対象の文字列の大文字と小文字の区別を無視して、文字列を比較します。

参考

スポンサーリンク


Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>