VB.Net - Char.IsNumber 输入罗马数字
VB.Net - Char.IsNumber input Roman numerals
我刚刚注意到 Char.IsNumber 函数接受罗马数字(除其他外)作为数字。
https://msdn.microsoft.com/en-us/library/y8t708dh%28v=vs.110%29.aspx
但是罗马数字是字符串("III"、"IV")或者字母("V"、"X"),这个方法怎么输入罗马数字return 是吗?
这让我想知道还可以输入哪些我们可能不认为是数字的内容。
我发现的 Char.IsSymbol 方法中的数字符号 (#) returns false
But Roman numerals would be strings ("III", "IV")…
总的来说,您认为罗马数字是 string
而不是 char
是正确的。
然而,对于某些特定的罗马数字——Ⅰ、Ⅱ、Ⅲ、Ⅳ、…、Ⅻ、Ⅼ、Ⅽ、Ⅾ、Ⅿ,以及它们的小写版本——Unicode 有专门的(非代理)代码点。我刚用过!有关详细信息,请参阅以下资源:
请注意,这些数字中的每一个都是单个(非代理项)Unicode 代码点,因此仅适合一个 .NET System.Char
。
…how can you input Roman numerals into this method for it to return true?
下面是 VB.NET 中的示例:
Dim romanNumeralFour As Char = ChrW(&H2163) ' or: "Ⅳ"c
Assert.IsTrue(Char.IsNumber(romanNumeralFour))
这里是 C# 版本:
const char romanNumeralFour = '\u2163'; // or: 'Ⅳ'
Assert.IsTrue(char.IsNumber(romanNumeralFour));
喜欢,请注意,如果您使用拉丁字母,这将不起作用,例如M
;罗马数字 Ⅿ
是一个不同的字符,即使它看起来可能相同(取决于您的显示字体)!
It makes me wonder what else could be entered that we may not consider to be a number.
对于来自这些 Unicode 字符类别的任何字符,该方法应该 return True
:
我刚刚注意到 Char.IsNumber 函数接受罗马数字(除其他外)作为数字。 https://msdn.microsoft.com/en-us/library/y8t708dh%28v=vs.110%29.aspx
但是罗马数字是字符串("III"、"IV")或者字母("V"、"X"),这个方法怎么输入罗马数字return 是吗?
这让我想知道还可以输入哪些我们可能不认为是数字的内容。 我发现的 Char.IsSymbol 方法中的数字符号 (#) returns false
But Roman numerals would be strings ("III", "IV")…
总的来说,您认为罗马数字是 string
而不是 char
是正确的。
然而,对于某些特定的罗马数字——Ⅰ、Ⅱ、Ⅲ、Ⅳ、…、Ⅻ、Ⅼ、Ⅽ、Ⅾ、Ⅿ,以及它们的小写版本——Unicode 有专门的(非代理)代码点。我刚用过!有关详细信息,请参阅以下资源:
请注意,这些数字中的每一个都是单个(非代理项)Unicode 代码点,因此仅适合一个 .NET System.Char
。
…how can you input Roman numerals into this method for it to return true?
下面是 VB.NET 中的示例:
Dim romanNumeralFour As Char = ChrW(&H2163) ' or: "Ⅳ"c
Assert.IsTrue(Char.IsNumber(romanNumeralFour))
这里是 C# 版本:
const char romanNumeralFour = '\u2163'; // or: 'Ⅳ'
Assert.IsTrue(char.IsNumber(romanNumeralFour));
喜欢M
;罗马数字 Ⅿ
是一个不同的字符,即使它看起来可能相同(取决于您的显示字体)!
It makes me wonder what else could be entered that we may not consider to be a number.
对于来自这些 Unicode 字符类别的任何字符,该方法应该 return True
: