本記事の概要
この記事では、文字列と文字列を比較して、辞書順でどちらが先かを判定する方法について説明します。
公式サイト情報はコチラを参照してください。
文字列どうしを辞書順で比較する Compare メソッドの基本
Compare メソッドは、指定した 2 つの文字列(String オブジェクト)を比較し、それらの相対位置(文字「A」と「B」を比較した場合は「A」の方が先となる)を並べ替え順序で示す整数を返します。返される値は以下表の通りです。
値 | 条件 |
0 未満 | 1つ目の文字列が2つ目の文字列よりも先 |
0 | 2つの文字列が等しい |
1 以上 | 1つ目の文字列が2つ目の文字列よりも後 |
文字列どうしを比較する例
以下は「hello」と「Hello」という文字列を比較する例です。
どちらの文字列も「Hello」ですが、先頭が小文字の「h」の方が、辞書では順番的に早く出現するため、「hello は Hello よりも先」と表示されます。
string strA = "hello"; string strB = "Hello"; int ret = String.Compare(strA, strB); if (ret < 0) { Console.WriteLine($"{strA} は {strB} よりも先"); } else if (ret == 0) { Console.WriteLine($"{strA} は {strB} と等しい"); } else { Console.WriteLine($"{strA} は {strB} よりも後"); }
部分文字列を比較する例
部分文字列を比較するには、以下書式の Compare メソッドを使用します。
Compare(String 1つ目の文字列, int32 1つ目の文字列の比較開始位置, String 2つ目の文字列, int32 2つ目の文字列の比較開始位置, int32 比較する文字列長さ)
以下は「hello」と「Hello」という文字列の2文字目から2文字分を比較する例です。
「el」と「el」を比較することになるので「hello は Hello と等しい」となります。
string strA = "hello"; string strB = "Hello"; int ret = String.Compare(strA, 1, strB, 1, 2); if (ret < 0) { Console.WriteLine($"{strA} は {strB} よりも先"); } else if (ret == 0) { Console.WriteLine($"{strA} は {strB} と等しい"); } else { Console.WriteLine($"{strA} は {strB} よりも後"); }
Please follow and like us:
コメント