用java代码把1,2,3,4.。。。小写数字,变成大写得壹,贰,叁.可是数字是随机产生得,例如128要变为壹佰贰拾捌
2008-09-11 16:23
531 查看
本文摘自:http://topic.csdn.net/u/20080909/14/0fb5e94e-6a32-4721-bc27-7ab6889f6785.htmleg1:Java codepackage com.qq.server;import java.text.DecimalFormat;public class Test6 {static final String zhnum_0= "零壹贰叁肆伍陆柒捌玖";static final String zhnum= "零一二三四五六七八九";static final String[] zhnum1= {"","十","百","千" };static final String[] zhnum1_0= {"","拾","佰","仟" };static final String[] zhnum2= {"","万","亿","万亿","亿亿" };public Test6() {}private static String numberToZH4(String s,boolean fan) {StringBuffer sb= new StringBuffer();if (s.length()!= 4)return null;for (int i= 0; i< 4; i++) {char c1= s.charAt(i);if (c1== '0' && i> 1 && s.charAt(i- 1)== '0')continue;if (c1!= '0' && i> 1 && s.charAt(i- 1)== '0')sb.append('零');if (c1!= '0') {if (fan) {sb.append(zhnum_0.charAt(c1- 48));sb.append(zhnum1_0[4 - i- 1]);}else {sb.append(zhnum.charAt(c1- 48));sb.append(zhnum1[4 - i- 1]);}}}return new String(sb);}public static String numberToZH(long n,boolean fan) {StringBuffer sb= new StringBuffer();String strN= "000" + n;int strN_L= strN.length()/ 4;strN= strN.substring(strN.length()- strN_L* 4);for (int i= 0; i< strN_L; i++) {String s1= strN.substring(i* 4, i* 4 + 4);String s2= numberToZH4(s1, fan);sb.append(s2);if (s2.length()!= 0)sb.append(zhnum2[strN_L- i- 1]);}String s= new String(sb);if (s.length()!= 0 && s.startsWith("零"))s= s.substring(1);return s;}public static String numberToZH(double d,boolean fan) {return numberToZH("" + d, fan);}public static String numberToZH(String str,boolean fan) {StringBuffer sb= new StringBuffer();int dot= str.indexOf(".");if (dot< 0)dot= str.length();String zhengshu= str.substring(0, dot);sb.append(numberToZH(Long.parseLong(zhengshu), fan));if (dot!= str.length()) {sb.append("点");String xiaoshu= str.substring(dot+ 1);for (int i= 0; i< xiaoshu.length(); i++) {if (fan) {sb.append(zhnum_0.charAt(Integer.parseInt(xiaoshu.substring(i, i+ 1))));}else {sb.append(zhnum.charAt(Integer.parseInt(xiaoshu.substring(i, i+ 1))));}}}String s= new String(sb);if (s.startsWith("零"))s= s.substring(1);if (s.startsWith("一十"))s= s.substring(1);while (s.endsWith("零")) {s= s.substring(0, s.length()- 1);}if (s.endsWith("点"))s= s.substring(0, s.length()- 1);return s;}public static String numberToRMB(double rmb) {String strRMB= "" + rmb;DecimalFormat nf= new DecimalFormat("#.#");nf.setMaximumFractionDigits(2);strRMB= nf.format(rmb).toString();strRMB= numberToZH(strRMB,true);if (strRMB.indexOf("点")>= 0) {strRMB= strRMB+ "零";strRMB= strRMB.replaceAll("点","圆");String s1= strRMB.substring(0, strRMB.indexOf("圆")+ 1);String s2= strRMB.substring(strRMB.indexOf("圆")+ 1);strRMB= s1+ s2.charAt(0)+ "角" + s2.charAt(1)+ "分整";}else {strRMB= strRMB+ "圆整";}return "人民币(大写):" + strRMB;}public static void main(String[] args) {System.out.println(numberToRMB(342345.96));System.out.println(numberToRMB(123));}}
eg2:
public class DigitalConvert {static final String zhnum_0 = "零壹贰叁肆伍陆柒捌玖";static final String[] zhnum1_0 = { "", "拾", "佰", "仟" };static final String[] zhnum2 = { "", "万", "亿", "万亿", "亿亿" };public DigitalConvert(){}public static String numberToZH(long n) {StringBuffer sb = new StringBuffer();String strN = "000" + n;int strN_L = strN.length() / 4;strN = strN.substring(strN.length() - strN_L * 4);for (int i = 0; i < strN_L; i++) {String s1 = strN.substring(i * 4, i * 4 + 4);String s2 = numberToZH4(s1);sb.append(s2);if (s2.length() != 0)sb.append(zhnum2[strN_L - i - 1]);}String s = new String(sb);if (s.length() != 0 && s.startsWith("零"))s = s.substring(1);return s;}private static String numberToZH4(String s) {StringBuffer sb = new StringBuffer();for (int i = 0; i < 4; i++) {char c1 = s.charAt(i);if (c1 == '0' && i > 1 && s.charAt(i - 1) == '0')continue;if (c1 != '0' && i > 1 && s.charAt(i - 1) == '0')sb.append('零');if (c1 != '0') {sb.append(zhnum_0.charAt(c1 - 48));sb.append(zhnum1_0[4 - i - 1]);}}return new String(sb);}public static void main(String []args){String str=numberToZH(1000000000000020L);System.out.println(str);}}
相关文章推荐
- java面试题,一个字符串中的大写变小写,小写变大写,数字不变,其他就变成*
- java 字符串中的大写变小写,小写变大写,数字不变,其他就变成*
- python 随机产生特定类型字符的函数(大写、小写、数字)
- java图片验证码(随即产生6位:数字,大写字符,小写字符)
- 关于把小写数字转化为大写数字的java代码
- java将小写数字变成大写输出
- Eclipse中把选中的代码变成全部大写或小写快捷键
- Eclipse如何将代码变成大写/小写
- 利用创建型工厂方法模式编写小写数字金额转换为人民币大写C#代码。
- java随机产生大数字
- 随机生成长度为len的密码,且包括大写、小写英文字母和数字
- java例题学习:统计大写,小写及数字字符的个数案例
- java将大写数字转换成小写并输出
- MyEclipse/Eclipse中把选中的一部分代码变成全部大写或小写快捷键
- 猜随机数字的java代码,还能改进吗??
- 金额小写变成大写代码
- Java 产生随机数字
- java和c中的空格符的差别以及C语言字符串变为整形数字代码
- PHP生成随机字符串,必须包含三项 大写小写数字
- Java随机产生4位验证码(数字、大小写字母组成)