天天看點

算法:把阿拉伯金額轉化為漢字表示的金額

算法:把阿拉伯金額轉化為漢字表示的金額

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

<code>using System;</code>

<code>using System.Text;</code>

<code>namespace</code> <code>money</code>

<code>{</code>

<code>    </code><code>class</code> <code>Program</code>

<code>    </code><code>{</code>

<code>        </code><code>static</code> <code>void</code> <code>Main(string[] args)</code>

<code>        </code><code>{</code>

<code>            </code><code>StringBuilder sb=</code><code>new</code> <code>StringBuilder();</code>

<code>            </code><code>var</code> <code>strValue = Console.ReadLine();</code>

<code>            </code><code>var</code> <code>strlist = strValue.Split(</code><code>'.'</code><code>);</code>

<code>            </code><code>if</code> <code>(strlist.Length &gt;= </code><code>2</code><code>)</code>

<code>            </code><code>{</code>

<code>                </code><code>var</code> <code>temp = strlist[</code><code>1</code><code>];</code>

<code>                </code><code>if</code> <code>(temp.Length &gt;= </code><code>2</code><code>)</code>

<code>                </code><code>{</code>

<code>                    </code><code>if</code> <code>(temp[</code><code>0</code><code>] != </code><code>'0'</code><code>)</code>

<code>                        </code><code>sb.Append(GetChinese(Convert.ToInt32(temp[</code><code>0</code><code>].ToString()))).</code>

<code>                            </code><code>Append(</code><code>"角"</code><code>).</code>

<code>                            </code><code>Append(GetChinese(Convert.ToInt32(temp[</code><code>1</code><code>].ToString()))).</code>

<code>                            </code><code>Append(</code><code>"分"</code><code>);</code>

<code>                    </code><code>else</code>

<code>                        </code><code>sb.Append(GetChinese(</code><code>0</code><code>));</code>

<code>                </code><code>}</code>

<code>                </code><code>else</code>

<code>                    </code><code>sb.Append(GetChinese(Convert.ToInt32(temp[</code><code>0</code><code>].ToString()))).Append(</code><code>"角"</code><code>);</code>

<code>            </code><code>}</code>

<code>            </code><code>int</code> <code>stateNum = </code><code>0</code><code>;</code>

<code>            </code><code>int</code> <code>tempNum = Convert.ToInt32(strlist[</code><code>0</code><code>]);</code>

<code>            </code><code>string outline = string.Empty;</code>

<code>            </code><code>while</code> <code>(tempNum&gt;</code><code>0</code><code>)</code>

<code>                </code><code>int</code> <code>g = tempNum%</code><code>10</code><code>;</code>

<code>                </code><code>if</code> <code>(g == </code><code>0</code><code>)</code>

<code>                    </code><code>outline += (stateNum!=</code><code>0</code><code>)?GetChinese(g):string.Empty;</code>

<code>                    </code><code>while</code> <code>(g == </code><code>0</code><code>)</code>

<code>                    </code><code>{</code>

<code>                        </code><code>stateNum++;</code>

<code>                        </code><code>tempNum = tempNum / </code><code>10</code><code>;</code>

<code>                        </code><code>g = tempNum % </code><code>10</code><code>;</code>

<code>                    </code><code>}</code>

<code>                    </code><code>outline += (stateNum &lt;= </code><code>4</code><code>) ? GetDW(stateNum) : GetDW((stateNum + </code><code>1</code><code>) / </code><code>4</code><code>);</code>

<code>                    </code><code>outline += GetChinese(g);</code>

<code>                    </code><code>tempNum = tempNum / </code><code>10</code><code>;</code>

<code>                    </code><code>stateNum++;</code>

<code>                </code><code>if</code> <code>(stateNum == </code><code>5</code><code>)</code>

<code>            </code><code>string right = string.Empty;</code>

<code>            </code><code>for</code> <code>(</code><code>int</code> <code>i = outline.Length-</code><code>1</code><code>; i &gt;= </code><code>0</code><code>; i--)</code>

<code>                </code><code>right += outline[i].ToString();</code>

<code>            </code><code>Console.WriteLine(right+sb.ToString());</code>

<code>            </code><code>Console.ReadKey();</code>

<code>        </code><code>}</code>

<code>        </code><code>private</code> <code>static</code> <code>string GetDW(</code><code>int</code> <code>i)</code>

<code>            </code><code>switch</code> <code>(i)</code>

<code>                </code><code>case</code> <code>0</code><code>:</code>

<code>                    </code><code>return</code> <code>"元"</code><code>;</code>

<code>                </code><code>case</code> <code>1</code><code>:</code>

<code>                    </code><code>return</code> <code>"十"</code><code>;</code>

<code>                </code><code>case</code> <code>2</code><code>:</code>

<code>                    </code><code>return</code> <code>"百"</code><code>;</code>

<code>                </code><code>case</code> <code>3</code><code>:</code>

<code>                    </code><code>return</code> <code>"千"</code><code>;</code>

<code>                </code><code>case</code> <code>4</code><code>:</code>

<code>                    </code><code>return</code> <code>"萬"</code><code>;</code>

<code>            </code><code>return</code> <code>null</code><code>;</code>

<code>        </code><code>private</code> <code>static</code> <code>string GetChinese(</code><code>int</code> <code>i)</code>

<code>                    </code><code>return</code> <code>"一"</code><code>;</code>

<code>                    </code><code>return</code> <code>"二"</code><code>;</code>

<code>                    </code><code>return</code> <code>"三"</code><code>;</code>

<code>                    </code><code>return</code> <code>"四"</code><code>;</code>

<code>                </code><code>case</code> <code>5</code><code>:</code>

<code>                    </code><code>return</code> <code>"五"</code><code>;</code>

<code>                </code><code>case</code> <code>6</code><code>:</code>

<code>                    </code><code>return</code> <code>"六"</code><code>;</code>

<code>                </code><code>case</code> <code>7</code><code>:</code>

<code>                    </code><code>return</code> <code>"七"</code><code>;</code>

<code>                </code><code>case</code> <code>8</code><code>:</code>

<code>                    </code><code>return</code> <code>"八"</code><code>;</code>

<code>                </code><code>case</code> <code>9</code><code>:</code>

<code>                    </code><code>return</code> <code>"九"</code><code>;</code>

<code>                    </code><code>return</code> <code>"零"</code><code>;</code>

<code>    </code><code>}</code>

<code>}</code>

本文轉自 tongling_zzu 51CTO部落格,原文連結:http://blog.51cto.com/tongling/1234239

繼續閱讀