4

我正在寻找一些 RegEx 或任何其他方法将数字 0-9 转换为 ०-९ (天城文脚本)。我正在使用 asp.net,但在全球化命名空间中找不到执行此操作的任何方法。

任何帮助是极大的赞赏。

4

2 回答 2

1

在这里找到类似的帖子!

我的解决方案有点不同,因为我知道源文化和目的地文化。所以我可以对数字数组进行硬编码。

        string devYear = "";
        string[] devD = { "०", "१", "२", "३", "४", "५", "६", "७", "८", "९" };
        char[] digits = curYear.ToCharArray();
        foreach (char ch in digits)
        {
            devYear += devD[int.Parse(ch.ToString())];
        }

另一个变化是我正在迭代年份数字而不是 devD 数组。节省少量迭代,因为大多数数字将小于 10 位。就我而言,只有四位数。

希望对坚持类似路线的人有用。

于 2012-02-21T14:50:42.507 回答
0

每个拉丁数字 0..9 是否都映射到一个梵文数字(如果我正确理解维基百科,我确实这么认为)=

如果是,那么以下内容如何:

public static string ConvertDigits( string s )
{
    return s
        .Replace("0", "०")
        .Replace("1", "१")
        .Replace("2", "२")
        .Replace("3", "३")
        .Replace("4", "४")
        .Replace("5", "५")
        .Replace("6", "६")
        .Replace("7", "७")
        .Replace("8", "८")
        .Replace("9", "९");
}

为了优化,您可以string.IsNullOrEmpty()在调用string.Replace函数之前进行检查。

此外(如果这适用于梵文数字),调用以 s 而不是 s 作为参数的string.Replace()函数重载charstring

于 2011-07-10T14:36:36.660 回答