在各种计数/排序系统、语言和文化中,是否有本地的.NET方法来查找数字。例如,我有数字1,2和3。如果我想用阿拉伯语,我可以用NumberInfo得到它们。
Public Sub PrintNumbers()
Dim currentCI As CultureInfo = New CultureInfo("ar-LB")
Dim nfi As NumberFormatInfo = currentCI.NumberFormat
Dim nativeDigitList As String() = nfi.NativeDigits
For i = 1 To 3
System.Diagnostics.Debug.WriteLine(String.Format("{0}: {1}", i, nativeDigitList(i)))
Next
End Sub打印: 1:١,2:٢,3:٣
这是我正在寻找的一个良好的开端,但我正在寻找一个更完整的系统,为语言/文化中的其他计数系统生成本机数字(和其他计数器)。
在.NET中,使用相同的中文代码("zh-CN")生成1: 1、2: 2、3: 3的数字,但我想要的是1:一、2:二、3:三。甚至中国金融: 1:壹,2:贰,3:叁。(注:简体中文样本)
在英语中,我们也使用罗马数字: 1: I,2: II,3: III。
还有一些非数字计数系统,如1: A、2: B、3: C(英文)、ت،ث(阿拉伯语)或Abjad (阿拉伯语:،ج،د)。
我相信,在不同的语言、脚本和文化中,还有很多其他的计算方法。NativeDigits数组不提供9以上的计数,也不提供其他文化/脚本计数系统。
所以问题是:您知道在.NET中实现这个目标的任何方法吗?我可能无法找到或已经完成了一个开放源代码项目,该项目允许我指定一个区域性(比如"fa-IR")、一个数字(比如"49")和一个由该文化支持的计数系统?
所以如果它是"en-US","27“和"abc-system",它会给我"aa”。
发布于 2011-10-23 08:00:42
除非有一个更好的答案,否则我所能找到的统计列表的最好方法是在http://www.w3.org/TR/css3-lists。虽然不是.NET,但我可以很简单地用.NET实现。
发布于 2011-10-20 20:29:35
我以前看过这个,也发现了和你一样的东西。
您可以使用NativeDigits将西方数字转换为它们的等价物--在BCL中没有比这更全面的了,我也不知道有哪个库实现了这样的东西。
https://stackoverflow.com/questions/7841837
复制相似问题