字列を比較する際に、文字の大文字/小文字、全角/半角、ひらがな/カタカナを区別せず比較したい場合があります。
大文字/小文字を区別せずに比較するのは、比較的、情報も多く、
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つの文字列が等しいかを調べる
大文字小文字、半角全角、ひらがなカタカナの区別をしないで文字列を比較する
が参考になります。
実は”ラベリング”と”ラベリング”の文字列を比較するのに大はまりして、
ひらがなの”ベ” と カタカナの ”ベ” がある事に気が付くまで、とても苦労してしまいました...
コメント