我正在回答这个question,一个人在帖子中评论说' *'也不是' - '不是MathSymbol。如果执行此c#,则返回false:
char.IsSymbol('*'); //false
char.IsSymbol('-'); //false
根据msdn:
有效符号是以下类别的成员 UnicodeCategory:MathSymbol,CurrencySymbol,ModifierSymbol和 OtherSymbol。 Unicode标准中的符号是一个松散定义的集合 包含以下内容的字符:
我做了这个snippet来查看所有的MathSymbol,我发现星号和减号都明显存在。
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?
答案 0 :(得分:3)
Unicode Math Symbols are listed here
除非明确说明(否则)正常的ASCII字符'*'和' - '以及'/'不在此范围内,即使它们通常用于文本/编程语言来表示数学运算。
与“符号,数学”类别中包含的“+”字符不同,这些其他字符具有更多重载的用法/名称(例如星号,破折号,连字符),这使得它们被包含为广义数学可疑: Unicode字符属于单个类别。
答案 1 :(得分:2)
星号和连字符都不是数学符号,无论我们通常使用它们并理解它们的含义。
Unicode数学符号类似于×
(×
作为小数转义)
答案 2 :(得分:2)
js_
的主要用途是标点符号(asterisk),*
用作短划线或连字符。