私はこのquestionに答えていましたが、1人の男がスレッドで「*」も「 - 」もMathSymbolではないとコメントしました。あなたはこのC#を実行した場合の両方がfalseを返す:*はなぜMathSymbolと見なされないのですか?
char.IsSymbol('*'); //false
char.IsSymbol('-'); //false
msdnによると:MathSymbol、CURRENCYSYMBOL、ModifierSymbol、および OtherSymbol:
有効なシンボルが UnicodeCategoryで以下のカテゴリーのメンバーです。 Unicode標準中の記号は、大まかに定義され、次のものがあり、文字の を設定します。
私はすべてのMathSymbolsを表示するには、このsnippetを行なったし、私は、アスタリスクもマイナス記号は明らかに、あったことが分かりました。
int ctr = 0;
UnicodeCategory category = UnicodeCategory.MathSymbol;
for (ushort codePoint = 0; codePoint < ushort.MaxValue; codePoint++) {
Char ch = Convert.ToChar(codePoint);
if (CharUnicodeInfo.GetUnicodeCategory(ch) == category) {
if (ctr % 5 == 0)
Console.WriteLine();
Console.Write("{0} (U+{1:X4}) ", ch, codePoint);
ctr++;
}
}
Console.WriteLine();
Console.WriteLine("\n{0} characters are in the {1:G} category",
ctr, category);
なぜこの2つの記号がMathSymbolsと見なされないのか、理由があるかどうかは知りたいですか?
[Unicode数学記号がここにリストされています](http://www.fileformat.info/info/unicode/category/Sm/list.htm)。明示的に記載されていない限り(それはそうではありません)、通常のASCII文字「*」と「 - 」はこの範囲にありません。 – user2864740
これは、プログラマーにとっての数学記号に過ぎず、タイポグラフィーには意味がありません。型を設定する人々は非常に高い基準を持っています:) –
これは、さまざまなプログラミング言語が数学演算子(例えば、乗算のためのアスタリスク)に使用するものではありません。この文脈での "数学記号"は、あなたの高校の数学宿題で見つけられるようなものです。 –