怎样用java代码把1,2,3,4.。。。小写数字,变成大写得壹,贰,叁? 怎样用java代码把1,2,3,4.小写数字,变成大写得壹,贰,叁?可是数字是随机产生得,例如128要变为壹佰贰拾捌 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先建立0~9数字与大写的对应关系,然后判断你随机的数字是多少位的,if(1位)直接替换else if(2位)替换每个数字中间加个拾else if(3位)替换每个数字中间加个佰、拾等等思路应该是这样差不多吧 google一下吧,很多,下回来后测试修改一下就行了 网上找的代码,测试成功package 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)); }} 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); }} 学习........ 用String 想可变就用BufferString 类的访问权限 求教! 新手问题-----关于do-while语句的运用 构造方法怎么重载? 又被简单的问题卡住了,谁来帮帮我吧 关于java中类的定义? socket连接池是否只对短连接有好处,长连接还需要吗? 乱码问题?!!!大哥帮忙解决一下,帅哥来领分! 急。。。在servlet如何连接到oracle(不通过odbc) 问题不怕简单,就怕没有人问?欢迎大家再来回答菜鸟java831的问题!!!! 我想用java 编个基于WEB的聊天室程序,可以给个算法吗? 怎么把String类型转化成Date类型的啊? 简单的Servlet里的setAttribute问题
if(1位)直接替换
else if(2位)替换每个数字中间加个拾
else if(3位)替换每个数字中间加个佰、拾
等等
思路应该是这样差不多吧
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));
}
}
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);
}}