自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)字轉(zhuǎn)換中文

開發(fā) 開發(fā)工具
博主發(fā)表的文章,有的是自己原創(chuàng),有的是這些年本人從網(wǎng)上積累的,方便大家學(xué)習(xí)。

 [[178881]]

  1. import java.util.Arrays; 
  2. import java.util.HashMap; 
  3. import java.util.Map; 
  4. /** 
  5.  * 數(shù)字轉(zhuǎn)中文,***為千億 
  6.  */ 
  7. public class NumTotring { 
  8.  
  9.  public static void main(String[] args) { 
  10.  String a[] = { "129830200000""12983020000""1298302000"
  11.  "129830200""23000042""2000042""100345""23864""1000"
  12.  "1234""123""23""5""20000000""10086""10010" }; 
  13.  for (int i = 0; i < a.length; i++) { 
  14.  System.out.println("原數(shù)字為:" + a[i] + "切換后的讀法為:" + readChinese(Long.parseLong(a[i]))); 
  15.  } 
  16.  } 
  17.  
  18.  //處理0、1、2……9的中文讀法的 
  19.  private static Map<Integer, String> numberStringMap = new HashMap<Integer, String>(); 
  20.  
  21.  //10進制的讀法 
  22.  private static Map<Integer, String> base10StringMap = new HashMap<Integer, String>(); 
  23.  
  24.  static { 
  25.  numberStringMap.put(0, "零"); 
  26.  numberStringMap.put(1, "壹"); 
  27.  numberStringMap.put(2, "貳"); 
  28.  numberStringMap.put(3, "叁"); 
  29.  numberStringMap.put(4, "肆"); 
  30.  numberStringMap.put(5, "伍"); 
  31.  numberStringMap.put(6, "陸"); 
  32.  numberStringMap.put(7, "柒"); 
  33.  numberStringMap.put(8, "捌"); 
  34.  numberStringMap.put(9, "玖"); 
  35.  
  36.  base10StringMap.put(1, ""); 
  37.  base10StringMap.put(2, "十"); 
  38.  base10StringMap.put(3, "百"); 
  39.  base10StringMap.put(4, "千"); 
  40.  base10StringMap.put(5, "萬"); 
  41.  } 
  42.  
  43.  private static String readChinese(long a) { 
  44.  String intString = a + ""
  45.  char ichar[] = intString.toCharArray(); 
  46.  
  47.  char icharrevert[] = revertCharArray(ichar); 
  48.  
  49.  int i = 0; 
  50.  String result = ""
  51.  while (i < icharrevert.length) { 
  52.  int j=i + 4 < icharrevert.length ? i + 4 : icharrevert.length; 
  53.  char[] icharsplit = Arrays.copyOfRange(icharrevert, i, j); 
  54.  result = processSplitedNumber(icharsplit, (i + 1) / 4) + result; 
  55.  i = i + 4; 
  56.  } 
  57.  return result; 
  58.  
  59.  } 
  60.  /** 
  61.  * 將得到的數(shù)組倒排,這樣做原因是因為讀的時候從前往后讀, 位數(shù)前面的高 
  62.  */ 
  63.  private static char[] revertCharArray(char[] ichar) { 
  64.  char icharNew[] = new char[ichar.length]; 
  65.  for (int i = ichar.length - 1, j = 0; i >= 0 && j < ichar.length; i--, j++) { 
  66.  icharNew[j] = ichar[i]; 
  67.  } 
  68.  return icharNew; 
  69.  } 
  70.  
  71.  private static String processSplitedNumber(char[] num, int time) { 
  72.  StringBuffer sb = new StringBuffer(); 
  73.  for (int i = num.length - 1; i >= 0; i--) { 
  74.  if (num[i] == '0') { 
  75.  //當(dāng)前數(shù)字是0.并且是***一位,直接不讀 
  76.  if (i == 0) { 
  77.  continue
  78.  } 
  79.  //當(dāng)前數(shù)字是0,下一個數(shù)字不是0,補一個0上去讀 
  80.  if (num[i - 1] != '0') { 
  81.  sb.append(numberStringMap.get(Integer.valueOf(num[i] + ""))); 
  82.  } else { 
  83.  continue
  84.  } 
  85.  } else { 
  86.  //如果當(dāng)前位數(shù)不是0,那就正常的讀出數(shù)字和位 
  87.  sb.append(numberStringMap.get(Integer.valueOf(num[i] + ""))); 
  88.  sb.append(base10StringMap.get(i + 1)); 
  89.  } 
  90.  } 
  91.  if (time == 0) { 
  92.  } else if (time == 1) { 
  93.  sb.append("萬"); 
  94.  } else if (time == 2) { 
  95.  sb.append("億"); 
  96.  } 
  97.  return sb.toString(); 
  98.  } 
  1. 原數(shù)字為:129830200000切換后的讀法為:壹千貳百玖十捌億叁千零貳十萬
  2. 原數(shù)字為:12983020000切換后的讀法為:壹百貳十玖億捌千叁百零貳萬
  3. 原數(shù)字為:1298302000切換后的讀法為:壹十貳億玖千捌百叁十萬貳千
  4. 原數(shù)字為:129830200切換后的讀法為:壹億貳千玖百捌十叁萬零貳百
  5. 原數(shù)字為:23000042切換后的讀法為:貳千叁百萬零肆十貳
  6. 原數(shù)字為:2000042切換后的讀法為:貳百萬零肆十貳
  7. 原數(shù)字為:100345切換后的讀法為:壹十萬零叁百肆十伍
  8. 原數(shù)字為:23864切換后的讀法為:貳萬叁千捌百陸十肆
  9. 原數(shù)字為:1000切換后的讀法為:壹千
  10. 原數(shù)字為:1234切換后的讀法為:壹千貳百叁十肆
  11. 原數(shù)字為:123切換后的讀法為:壹百貳十叁
  12. 原數(shù)字為:23切換后的讀法為:貳十叁
  13. 原數(shù)字為:5切換后的讀法為:伍
  14. 原數(shù)字為:20000000切換后的讀法為:貳千萬
  15. 原數(shù)字為:10086切換后的讀法為:壹萬零捌十陸
  16. 原數(shù)字為:10010切換后的讀法為:壹萬零壹十

【本文是51CTO專欄作者張勇波的原創(chuàng)文章,轉(zhuǎn)載請通過51CTO獲取作者授權(quán)】

責(zé)任編輯:武曉燕 來源: 上下求索的Z先生博客
相關(guān)推薦

2009-08-21 17:02:31

C#編寫數(shù)字轉(zhuǎn)換中文算

2016-12-14 09:07:54

日期轉(zhuǎn)換中文

2010-10-27 13:25:33

Oracle查詢

2010-03-11 17:38:20

Python中文

2024-02-26 08:05:00

Pythonpypinyin開發(fā)

2019-03-25 20:31:58

IP地址轉(zhuǎn)換數(shù)字

2010-05-21 17:14:18

MySQL 數(shù)字類型

2009-07-31 14:09:41

c#時間格式轉(zhuǎn)換

2010-03-24 18:00:30

Python中文轉(zhuǎn)換u

2010-07-14 16:10:37

Perl

2024-04-02 09:26:07

C#中文數(shù)字編程語言

2009-12-04 14:29:09

PHP json_en

2010-10-27 13:39:34

Oracle查詢

2010-05-24 15:53:44

MySQL內(nèi)置函數(shù)

2010-09-09 11:02:36

SQL函數(shù)IP

2021-08-20 06:58:31

C++Python函數(shù)

2009-12-07 16:12:32

中文Python中文編程

2021-02-21 09:25:41

開源技術(shù) 工具

2021-10-09 11:18:17

數(shù)字化轉(zhuǎn)型IT技術(shù)
點贊
收藏

51CTO技術(shù)棧公眾號