java实现整数转化为中文大写金额的方法

深深深深深s

深深深深深s

2016-02-19 09:34

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享java实现整数转化为中文大写金额的方法,希望可以对大家能有小小的帮助。

在日常生活中,我们经常会将阿拉伯数字转化为中文大写的情况:"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖", "拾", "佰", "仟", "万", "亿",因此自己就编写一个类,实现该功能的转化。
实现过程:
对于这个问题的实现,我们首先把数字按四位一个拆开(符合我们读数字的习惯),然后对这四位数,做出他的读法,具体代码如下:

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(); } 

下面我们只需要在编写一个方法,实现每个四位数的读法以及对应的单位即可,具体代码如下:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)
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(); } 

完整源代码:

 /**  *@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));  }  }

 测试运行结果:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

希望本文所述对大家学习java程序设计有所帮助。

展开更多 50%)
分享

猜你喜欢

java实现整数转化为中文大写金额的方法

编程语言 网络编程
java实现整数转化为中文大写金额的方法

将金额小写转化成汉字大写的实现过程

电脑网络
将金额小写转化成汉字大写的实现过程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

金额大写转换

编程语言 网络编程
金额大写转换

小写转大写金额

SQLServer
小写转大写金额

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Word快速输入大写金额方法

word
Word快速输入大写金额方法

PPT如何转化为WORD PPT转化为WORD的教程

PPT 软件教程
PPT如何转化为WORD PPT转化为WORD的教程

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

(仅IE下有效)关于checkbox 三态

(仅IE下有效)关于checkbox 三态

Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子

Android 图像处理(类型转换,比例缩放,倒影,圆角)的小例子
下拉加载更多内容 ↓