字列を比較する際に、文字の大文字/小文字、全角/半角、ひらがな/カタカナを区別せず比較したい場合があります。
大文字/小文字を区別せずに比較するのは、比較的、情報も多く、
System.StringクラスのCompareメソッド
を使います。
使用例はこんな感じ↓
String^ strA = "Labeling";
String^ strB = "labeling";
if (String::Compare(strA, strB, true) == 0){
MessageBox::Show("strAとstrBは同じ");
}
ただ、実際には、日本語を比較する場合は、全角/半角、ひらがな/カタカナを区別しないで比較したい場合が多く、この場合はSystem.Globalization.CompareInfoクラスのCompareメソッドを使います。
(使用例)
System::Globalization::CompareInfo^ ci =
System::Globalization::CultureInfo::CurrentCulture->CompareInfo;
String^ strA = "ラベリング";
String^ strB = "らべりんぐ";
if (ci->Compare(strA, strB,
System::Globalization::CompareOptions::IgnoreWidth | //全角/半角を無視
System::Globalization::CompareOptions::IgnoreCase | //大文字/小文字を無視
System::Globalization::CompareOptions::IgnoreKanaType //ひらがな/カタカナを無視
) == 0){
MessageBox::Show("strAとstrBは同じ");
}
詳しくはDOBON.NETの
2つの文字列が等しいかを調べる
大文字小文字、半角全角、ひらがなカタカナの区別をしないで文字列を比較する
が参考になります。
実は”ラベリング”と”ラベリング”の文字列を比較するのに大はまりして、
ひらがなの”ベ” と カタカナの ”ベ” がある事に気が付くまで、とても苦労してしまいました...
コメント