この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
大文字/小文字を区別せずに2つの文字列を比較する場合、比較的よく見掛けるコードは次のようなif文だ。
if (strA.ToLower() == strB.ToLower()) {
//
// (大文字/小文字の違いはあるかもしれないが)
// strAとstrBは同じ
//
}
If strA.ToLower() = strB.ToLower() Then
'
' (大文字/小文字の違いはあるかもしれないが)
' strAとstrBは同じ
'
End If
このif文では、Stringクラス(System名前空間)のToLowerメソッドにより、両方の文字列をまず小文字にしてから比較している(もちろん、ToUpperメソッドにより両方を大文字にしてから比較してもよい)。
Stringクラスには文字列を比較するためのCompareメソッドも用意されている。このメソッドにより大文字/小文字を区別せずに文字列を比較するには、次のようにして行う。
if (String.Compare(strA, strB, true) == 0) {
//
// (大文字/小文字の違いはあるかもしれないが)
// strAとstrBは同じ
//
}
If String.Compare(strA, strB, True) = 0 Then
'
' (大文字/小文字の違いはあるかもしれないが)
' strAとstrBは同じ
'
End If
このCompareメソッドでは、第3パラメータにtrueを指定することによって、大文字/小文字の区別なしに文字列を比較できる。
これら2つのif文は機能的には同等だが、速度的には大きな差がある。次のサンプル・プログラムは、それぞれのif文を100万回ずつ実行して、それにかかる時間を調べている。
Copyright© Digital Advantage Corp. All Rights Reserved.