我正在尋找一些RegEx或任何其他方法將數字0-9轉換爲0-9(梵文腳本)。我正在使用asp.net,但無法在全球化名稱空間中找到任何方法。將unicode數字從英文轉換爲devanagari
任何幫助,非常感謝。
我正在尋找一些RegEx或任何其他方法將數字0-9轉換爲0-9(梵文腳本)。我正在使用asp.net,但無法在全球化名稱空間中找到任何方法。將unicode數字從英文轉換爲devanagari
任何幫助,非常感謝。
是否每個拉丁位0..9地圖整整devanagari digit(我不這麼認爲,如果我理解正確的維基百科)=
如果是,如何瞭解以下信息:
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()
。
另外(如果這適用於梵文數字),請致電string.Replace()
function overload,其中char
s作爲參數而不是string
s。
從歷史上看,十進制數字系統中的每個拉丁數字都取自梵文數字,所以是的,它確實映射回來:) 這是一個非常簡單的解決方案,但不夠優雅。我正在尋找的東西類似於xslt http://www.w3schools.com/xpath/xpath_functions.asp#string中使用的translate()函數。 另外,如果我沒有弄錯,我們應該使用stringbuilder而不是string來獲得更好的結果。 謝謝! –
找到了相似的帖子here!
雖然我知道源文化和目標文化,但我的解決方案有點不同。所以我可以對數字數組進行硬編碼。
string devYear = "";
string[] devD = { "०", "१", "२", "३", "४", "५", "६", "७", "८", "९" };
char[] digits = curYear.ToCharArray();
foreach (char ch in digits)
{
devYear += devD[int.Parse(ch.ToString())];
}
另一個變化是,我通過一年的數字,而不是DEVD陣列迭代。由於大多數數字都小於10位數,所以節省了很少的迭代次數。在我的情況下,只有四位數字。
希望對於有人陷入類似路線有用。
假設梵文數字也被合理排列,您可能只需向原始代碼點「0」 - 「0」添加偏移即可。 –
是的。這是我會試一試的。謝謝 ! –