簡體   English   中英

在C#中查找數字字符的數值

[英]Find numeric value of a digit character in C#

Unicode字符中有幾個表示數字的范圍, char.IsDigit返回true 例如:

bool b1 = char.IsDigit('\uFF12');    // full-width '2' -> true
bool b2 = char.IsDigit('\u0665');    // true
bool b3 = char.IsDigit('5');         // true

我正在尋找一種方法來獲得這些字符的數字等價物。 請注意, int.Parse(...)不起作用,因為它期望輸入字符在基本unicode范圍內('0'..'9')。

這相當於Java的Character.digit(...)行為。

由於.NET框架的char.IsDigit方法正確地將這些字符標識為數字,我希望它也具有此功能,但我找不到任何東西。

你試過Char.GetNumericValue嗎? (我只是啟動我的Windows筆記本電腦來檢查:)

編輯:剛嘗試過 - 看起來像是有效的:

Console.WriteLine(char.GetNumericValue('\uFF12'));  // 2
Console.WriteLine(char.GetNumericValue('\u0665'));  // 5
Console.WriteLine(char.GetNumericValue('5'));       // 5

請注意,這並不僅僅包括數字-這是任何數字字符。 然而, IsDigit僅僅個數字。 例如:

// U+00BD is the Unicode "vulgar fraction one half" character
Console.WriteLine(char.IsDigit('\u00bd'));         // False
Console.WriteLine(char.GetNumericValue('\u00bd')); // 0.5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM