2016-12-03 98 views
1

我想读取整数并在C#中返回一个字符串?读取整数和返回字符串

例如:1234是一千二百三十四。

我正在尝试这样做的乐趣,因为我刚刚学会了C#。但事实证明这很困难。任何指导都有帮助?到目前为止,我已经找到了给定的数字的长度(eazy peazy),但困难的部分是如何处理它。

我不是在寻找完整的代码,只是建设性的建议和解决这个问题的方法/算法。

回答

0

我认为最有用的建议是想想地址值

你知道1xxx是“一千”,2xxx是“二千”等。这就是如果最高位数字在千位上,数字的名字将如何开始。

数百个地方也是如此:1xx是“一百”,2xx是“二百”等。这将在数千位字符串之后立即出现,并以逗号分隔。

您需要准备一个字符串表来将简单数字(1-9)映射到文本字符串,然后您只需将它们连接到“百”或“千”。

对于十几个地方,事情变得有点棘手,因为我们不说“三十”。英语对每一个都有特殊的词汇,比如“三十”和“五十”。所以你需要另外一个将1-9位数字(在十位找到)映射到特殊名字的表格。

最后,你有一个地方,就像你说的那样,“eazy peazy”。使用相同的字符串表将1映射为“1”,将2映射为“2”等。用连字符将十位字符串与ones-place字符串分开。

因此,对于您的1234例中,您有:

  • “一” “千”
  • “两节” “百”
  • “三十”
  • “四个一”

…正是你想出如何用英语说出来的方式!该代码非常写道自己。

剩下的唯一挑战是处理的情况下,这些地方值之一缺少,例如当它包含0有可能是一个更好的办法,但我的直觉告诉你需要的条件(如)语句来处理这个。