String.CompareToメソッドとString.Equalsメソッドは文字列の比較を行うメソッドで、指定された文字列と比較した結果を返します。
CompareToメソッドの戻り値は、二つの文字列を並べ替えた時の順番に従い、次のようになります。 比較の際、null
/Nothing
は空文字を含むどのような文字列よりも小さいと判断され、null
/Nothing
同士は等価として扱われます。
文字列aとbの関係 | a.CompareTo(b)の戻り値 | 例 |
---|---|---|
並べ替えたときにaの方がbよりも前 (aはbよりも小さい) |
0より小さい値 | "ABC" < "ABD" null < "ABC" |
並べ替えたときにaとbは同じ位置 (aとbは等しい) |
0 | "ABC" = "ABC" null = null |
並べ替えたときにaの方がbよりも後 (aはbよりも大きい) |
0より大きい値 | "ABC" > "ABB" "ABC" > null |
Equalsメソッドは、二つの文字列が等しい場合(CompareToメソッドが0を返す場合)にTrueを返します。
String.CompareTo・Equalsメソッドで別の文字列との大小関係・等価関係の比較を行う
Imports System
Class Sample
Shared Sub Main()
Dim s1 As String = "foo"
Dim s2 As String = "bar"
Dim s3 As String = "baz"
Console.WriteLine("{0} CompareTo {1} : {2}", s1, s2, s1.CompareTo(s2))
Console.WriteLine("{0} CompareTo {1} : {2}", s1, s3, s1.CompareTo(s3))
Console.WriteLine("{0} CompareTo {1} : {2}", s2, s3, s2.CompareTo(s3))
Console.WriteLine("{0} CompareTo {1} : {2}", s2, s2, s2.CompareTo(s2))
Console.WriteLine("{0} Equals {1} : {2}", s1, s2, s1.Equals(s2))
Console.WriteLine("{0} Equals {1} : {2}", s1, s3, s1.Equals(s3))
Console.WriteLine("{0} Equals {1} : {2}", s2, s3, s2.Equals(s3))
Console.WriteLine("{0} Equals {1} : {2}", s2, s2, s2.Equals(s2))
End Sub
End Class
実行結果
foo CompareTo bar : 1 foo CompareTo baz : 1 bar CompareTo baz : -1 bar CompareTo bar : 0 foo Equals bar : False foo Equals baz : False bar Equals baz : False bar Equals bar : True