如何匹配不同语言的数字?

时间:2013-08-24 11:49:41

标签: c# .net regex

我有一个日文文本中的数字和英文文本中的数字。

example:
In japanese language six=6
In english language six=6

所以当我比较这个值时,它返回false 我使用了CompareTo()但它没有返回0

如何匹配此值????

2 个答案:

答案 0 :(得分:6)

您可以使用Normalize(NormalizationForm.FormKC)将国际数字减少为英语/阿拉伯语等值。

"6".Normalize(NormalizationForm.FormKC); // returns "6"
"6".Normalize(NormalizationForm.FormKC); // also returns "6"

您可以将比较提取到方法中:

static bool IsEqualAfterNormalizingKC(string s1, string s2) {
    if (s1 == null && s2 == null) return true;
    if (s1 == null || s2 == null) return false;
    return s1.Normalize(NormalizationForm.FormKC) == s2.Normalize(NormalizationForm.FormKC);
}
IsEqualAfterNormalizingKC("6", "6"); // true

答案 1 :(得分:0)

使用.NET的常用解析方法将字符串解析为整数(int)。然后,比较两个整数。

应对本机表示执行数据比较/解释,在本例中为int