このコンテキストで記号である文字:名前空間のUnicodeCategory.MathSymbol
、UnicodeCategory.CurrencySymbol
、UnicodeCategory.ModifierSymbol
および。これらは、それぞれ Sm、Sc、Sk、および So と指定された Unicode 文字です。他のすべての文字は を返します。UnicodeCategory.OtherSymbol
System.Globalization
False
.Net ソースから:
internal static bool CheckSymbol(UnicodeCategory uc)
{
switch (uc)
{
case UnicodeCategory.MathSymbol:
case UnicodeCategory.CurrencySymbol:
case UnicodeCategory.ModifierSymbol:
case UnicodeCategory.OtherSymbol:
return true;
default:
return false;
}
}
またはVB.Netに変換:
Friend Shared Function CheckSymbol(uc As UnicodeCategory) As Boolean
Select Case uc
Case UnicodeCategory.MathSymbol, UnicodeCategory.CurrencySymbol, UnicodeCategory.ModifierSymbol, UnicodeCategory.OtherSymbol
Return True
Case Else
Return False
End Select
End Function
CheckSymbol
IsSymbol
指定された文字の Unicode カテゴリで呼び出されます。
*
はカテゴリに含まれているためOtherPunctuation
(これは で確認できますchar.GetUnicodeCategory()
)、シンボルとは見なされず、メソッドは正しく を返しますFalse
。
質問に答えるには: を使用char.GetUnicodeCategory()
して、キャラクターがどのカテゴリに該当するかを確認し、独自のロジックに含めるかどうかを決定します。