将 unicode 数字从英语转换为梵文

发布于 2024-11-19 02:40:29 字数 104 浏览 3 评论 0原文

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

非常感谢任何帮助。

I was looking for some RegEx or any other method to convert digits 0-9 into ०-९ (devanagari script). I am using asp.net but could not find any method in globalization namespace which does this.

Any help is greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

傾城如夢未必闌珊 2024-11-26 02:40:29

此处找到了类似的帖子!

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

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

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

希望对那些陷入类似困境的人有用。

Found similar post here!

My solution is bit different though as I know the source and destination culture. So I can hard-code the digits array.

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

Another change is that I am iterating through the year digits instead of devD array. Saves few iterations as most numbers will be less than 10 digit. In my case, only four digits.

Hopefully will be useful for someone stuck up on similar lines.

舟遥客 2024-11-26 02:40:29

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

如果是,那么以下怎么样:

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.Replace 之前检查 string.IsNullOrEmpty() 功能。

另外(如果这适合梵文数字),请调用 字符串.Replace()函数重载,将char作为参数而不是string

Does each latin digit 0..9 map to exactly a devanagari digit (I do think so, if I understand Wikipedia correctly)=

If yes, how about the following:

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", "९");
}

For optimization, you could check for string.IsNullOrEmpty() before calling the string.Replace function.

In Addition (if this is suitable for a devanagari digit), call the string.Replace() function overload that takes chars as parameters rather than strings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文