使用希伯来字母将数字转换为字符串

Rom*_*asz 2 c# windows globalization windows-phone windows-phone-8.1

这可能是一个简单的问题(甚至可能是一个骗局),但我找不到这个问题的答案 - 如何使用希伯来字母打印数字?

我尝试更改应用程序语言和/或使用格式提供程序:

myTextBox.Text = 555.ToString(new System.Globalization.CultureInfo("he-IL"));
Run Code Online (Sandbox Code Playgroud)

但我看不到希伯来字母。

Jon*_*nna 5

正如佐哈尔所说,在大多数用途中,希伯来语使用与英语相同的印度-阿拉伯数字。如果您确实想使用希伯来字母写出数字,一个简单的方法是:

\n\n
public static string FormatHebrew(this int num)\n{\n  if(num <= 0)\n    throw new ArgumentOutOfRangeException();\n  StringBuilder ret = new StringBuilder(new string (\'\xd7\xaa\', num / 400));\n  num %= 400;\n  if(num >= 100)\n  {\n    ret.Append("\xd7\xa7\xd7\xa8\xd7\xa9"[num / 100 - 1]);\n    num %= 100;\n  }\n  switch(num)\n  {\n    // Avoid letter combinations from the Tetragrammaton\n    case 16:\n      ret.Append("\xd7\x98\xd7\x96");\n      break;\n    case 15:\n      ret.Append("\xd7\x98\xd7\x95");\n      break;\n    default:\n      if (num >= 10)\n      {\n        ret.Append("\xd7\x9b\xd7\x9c\xd7\x9e\xd7\xa0\xd7\xa1\xd7\xa2\xd7\xa4\xd7\xa6\xd7\x99"[num / 10 - 1]);\n        num %= 10;\n      }\n      if(num > 0)\n        ret.Append ("\xd7\x90\xd7\x91\xd7\x92\xd7\x93\xd7\x94\xd7\x95\xd7\x96\xd7\x97\xd7\x98" [num - 1]);\n        break;\n  }\n  return ret.ToString ();\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

(请确保您的文本编辑器正确处理字符串的顺序,最主要的是编译器看到的源代码按从低到高的顺序排列它们。一个好的文本编辑器会将其显示为从右到高的顺序- 左,因为这是希伯来语使用的顺序,但有些人会显示它与此相反)。

\n

  • 看起来像一个错误 - 字符串“כלמנסעפצй”应该是“כלמנסעפצ”(yud - 10 - 移动到字符串的开头)。 (2认同)