一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java實現整數轉化為中文大寫金額的方法

java實現整數轉化為中文大寫金額的方法

2020-06-18 15:42xiaojimanman JAVA教程

這篇文章主要介紹了java實現整數轉化為中文大寫金額的方法,感興趣的小伙伴們可以參考一下

在日常生活中,我們經常會將阿拉伯數字轉化為中文大寫的情況:"零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖", "拾", "佰", "仟", "萬", "億",因此自己就編寫一個類,實現該功能的轉化。
實現過程:
對于這個問題的實現,我們首先把數字按四位一個拆開(符合我們讀數字的習慣),然后對這四位數,做出他的讀法,具體代碼如下:

?
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
private static String getNumberStr1000 (int num) {
 if (num > 9999 || num < 0) {
  return "";
 }
 int q = num / 1000;
 int b = (num / 100) % 10;
 int s = (num / 10) % 10;
 int g = num % 10;
 StringBuffer sb = new StringBuffer();
 //千
 if (q > 0) {
  sb.append(NUMBER1[q]);
  sb.append(NUMBER2[3]);
 }
 //百
 if (b > 0) {
  sb.append(NUMBER1[b]);
  sb.append(NUMBER2[2]);
 } else {
  if (q != 0) {
   sb.append(NUMBER2[0]);
  }
 }
 //十
 if (s > 0) {
  sb.append(NUMBER1[s]);
  sb.append(NUMBER2[1]);
 } else {
  if (b != 0) {
   sb.append(NUMBER2[0]);
  }
 }
 //個
 if (g > 0) {
  sb.append(NUMBER1[g]);
 }
 return sb.toString();
}

下面我們只需要在編寫一個方法,實現每個四位數的讀法以及對應的單位即可,具體代碼如下:

?
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
public static String getNumberStr(int num) {
 if (num < 0) {
  return "";
 }
 if (num == 0) {
  return NUMBER1[0];
 }
 int split = 10000;
 int y = num / (split * split);
 int w = (num / split) % split;
 int g = num % split;
 StringBuffer sb = new StringBuffer();
 //億
 if (y > 0) {
  sb.append(getNumberStr1000(y));
  sb.append(NUMBER2[5]);
 }
 //萬
 if (w > 999) {
  sb.append(getNumberStr1000(w));
  sb.append(NUMBER2[4]);
 } else {
  if (w > 0) {
   if (y != 0) {
    sb.append(NUMBER2[0]);
   }
   sb.append(getNumberStr1000(w));
   sb.append(NUMBER2[4]);
  }
 }
 //萬以下
 if (g > 0) {
  if (w != 0) {
   if (g > 999) {
    sb.append(getNumberStr1000(g));
   } else {
    sb.append(NUMBER2[0]);
    sb.append(getNumberStr1000(g));
   }
    
  } else {
   if (y != 0) {
    sb.append(NUMBER2[0]);
   }
   sb.append(getNumberStr1000(g));
  }
 }
 return sb.toString();
}

完整源代碼:

?
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
/**
 *@Description: 
 */
package com.lulei.util;
 
public class NumberUtil {
 private static String[] NUMBER1 = {"零", "壹", "貳", "叁", "肆", "伍", "陸", "柒", "捌", "玖"};
 private static String[] NUMBER2 = {"零", "拾", "佰", "仟", "萬", "億"};
  
 /**
  * @param num
  * @return
  * @Author:lulei
  * @Description:將數字轉化為大寫
  */
 public static String getNumberStr(int num) {
  if (num < 0) {
   return "";
  }
  if (num == 0) {
   return NUMBER1[0];
  }
  int split = 10000;
  int y = num / (split * split);
  int w = (num / split) % split;
  int g = num % split;
  StringBuffer sb = new StringBuffer();
  //億
  if (y > 0) {
   sb.append(getNumberStr1000(y));
   sb.append(NUMBER2[5]);
  }
  //萬
  if (w > 999) {
   sb.append(getNumberStr1000(w));
   sb.append(NUMBER2[4]);
  } else {
   if (w > 0) {
    if (y != 0) {
     sb.append(NUMBER2[0]);
    }
    sb.append(getNumberStr1000(w));
    sb.append(NUMBER2[4]);
   }
  }
  //萬以下
  if (g > 0) {
   if (w != 0) {
    if (g > 999) {
     sb.append(getNumberStr1000(g));
    } else {
     sb.append(NUMBER2[0]);
     sb.append(getNumberStr1000(g));
    }
     
   } else {
    if (y != 0) {
     sb.append(NUMBER2[0]);
    }
    sb.append(getNumberStr1000(g));
   }
  }
  return sb.toString();
 }
  
 /**
  * @param num
  * @return
  * @Description:對萬以下的數字進行大小寫轉化
  */
 private static String getNumberStr1000 (int num) {
  if (num > 9999 || num < 0) {
   return "";
  }
  int q = num / 1000;
  int b = (num / 100) % 10;
  int s = (num / 10) % 10;
  int g = num % 10;
  StringBuffer sb = new StringBuffer();
  //千
  if (q > 0) {
   sb.append(NUMBER1[q]);
   sb.append(NUMBER2[3]);
  }
  //百
  if (b > 0) {
   sb.append(NUMBER1[b]);
   sb.append(NUMBER2[2]);
  } else {
   if (q != 0) {
    sb.append(NUMBER2[0]);
   }
  }
  //十
  if (s > 0) {
   sb.append(NUMBER1[s]);
   sb.append(NUMBER2[1]);
  } else {
   if (b != 0) {
    sb.append(NUMBER2[0]);
   }
  }
  //個
  if (g > 0) {
   sb.append(NUMBER1[g]);
  }
  return sb.toString();
 }
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  int i = 1;
  System.out.println(i + "--" + NumberUtil.getNumberStr(i));
  i = 1001;
  System.out.println(i + "--" + NumberUtil.getNumberStr(i));
  i = 100101;
  System.out.println(i + "--" + NumberUtil.getNumberStr(i));
  i = 10100101;
  System.out.println(i + "--" + NumberUtil.getNumberStr(i));
  i = 1234567890;
  System.out.println(i + "--" + NumberUtil.getNumberStr(i));
 }
 
}

 測試運行結果:

java實現整數轉化為中文大寫金額的方法

希望本文所述對大家學習java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性做久久久久久久久老女人 | 爱草影院 | 亚洲人成网站在线观看播放青青 | 成人国产精品一级毛片视频 | 青青青国产视频 | 亚洲国产情侣偷自在线二页 | 99综合视频 | 亚洲精品国产A久久久久久 亚洲精品福利一区二区在线观看 | 香蕉在线精品一区二区 | 朝鲜美女免费一级毛片 | 欧美交换乱理伦片120秒 | 性xxxx欧美高清 | 视频在线欧美 | 亚洲人成伊人成综合网久久 | 高清国产在线观看 | 久久受www免费人成_看片中文 | 国产肥女bbwbbw | 特黄特黄一级片 | 国产成人性色视频 | yy6080久久国产伦理 | 91混血大战上海双胞胎 | 热久久最新地址 | 欧美日韩精品一区二区三区视频在线 | 好紧好爽范冰冰系列 | chinese军人@gay | 天堂成人在线观看 | 青青草99久久精品国产综合 | 小寡妇好紧进去了好大看视频 | 热剧库| 1769最新资源站| 国产精品嫩草影院在线看 | 国产欧美国产精品第一区 | 国产手机在线αⅴ片无码观看 | 办公室大战秘书呻吟 | 国色天香社区在线视频免费观看 | 毛片小视频 | 成人精品一区二区三区 | 国内精品伊人久久大香线焦 | xx18-19xxxxhd| 亚洲伦理天堂 | 性刺激欧美三级在线现看中文 |