本記事の概要
この記事では、文字列と文字列を比較して、辞書順でどちらが先かを判定する方法について説明します。
公式サイト情報はコチラを参照してください。
文字列どうしを辞書順で比較する 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:


コメント