同意楼上的说法!吧输入的数字串转化为数组!switch case 枚举每一个元素就OK了!幸亏不是1001 转化为 壹仟零壹 要是这样就麻烦了!嗬嗬!
import java.util.HashMap;public class FromOneToZero { private static HashMap hm; static { hm = new HashMap(); hm.put("1", "壹"); hm.put("2", "贰"); hm.put("3", "叁"); hm.put("4", "肆"); hm.put("5", "伍"); hm.put("6", "陆"); hm.put("7", "柒"); hm.put("8", "捌"); hm.put("9", "玖"); hm.put("0", "零"); } public static String getNum(String num) { if (hm.get(num) == null) { return null; } else { return hm.get(num).toString(); } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String arg = args[0]; String result = ""; for (int i = 0; i < arg.length(); i++) { result += getNum(arg.substring(i, i + 1)); } System.out.println("您的原始数据为" + args[0] + "\n您的转换结果为" + result); }}C:\> C:\> C:\>javac FromOneToZero.javaC:\>java FromOneToZero 1234567890 您的原始数据为: 1234567890 您的转换结果为: 壹贰叁肆伍陆柒捌玖零 我要回寝室了,没有时间写的再好点。看看能满足你的要求不。 明天我再来给你修改
http://www.java99.com/?m=ViewFaq&id=129
public class TestT implements ItemListener { public static void main(String[] args) { String sNum = args[0]; String result = ""; for (int i = 0; i < sNum.length(); i++) { switch(sNum.charAt(i)) { case '0': result+="零";break; case '1': result+="壹";break; case '2': result+="贰";break; case '3': result+="叁";break; case '4': result+="肆";break; case '5': result+="伍";break; case '6': result+="陆";break; case '7': result+="柒";break; case '8': result+="捌";break; case '9': result+="玖";break; default: System.out.println("存在非法的数字!"); System.exit(0);break; } } System.out.println(" the number " + sNum + "is changed into " + result); } }
汗拷贝忘了把" implements ItemListener"去掉了!
很多人问过了,如下面的: http://community.csdn.net/Expert/topic/5093/5093849.xml?temp=.9010889我的绝对经典答案: String[] num = new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; String[] unit = new String[]{"","拾","佰","仟","万","拾万","佰万","仟万","亿","拾亿","佰亿","仟亿","万亿","十万亿","佰万亿","仟万亿"}; //不够自己再加 String src = "00100000300025"; String desc = ""; // 转换数字 int len = src.length(); String[] descc = new String[len]; for (int i=0; i<len; i++) { descc[i] = num[src.charAt(i) - '0']; } // 加上单位 for (int i=0; i<len; i++) { desc += descc[i]; if (!(descc[i].equals("零"))) { desc += unit[len-1-i]; } } // 去掉多余的”零“ desc = desc.replaceAll("零+", "零"); desc = desc.replaceAll("^零+", ""); desc = desc.replaceAll("零+$", ""); System.out.println(desc);
private static HashMap hm;
static { hm = new HashMap();
hm.put("1", "壹");
hm.put("2", "贰");
hm.put("3", "叁");
hm.put("4", "肆");
hm.put("5", "伍");
hm.put("6", "陆");
hm.put("7", "柒");
hm.put("8", "捌");
hm.put("9", "玖");
hm.put("0", "零");
} public static String getNum(String num) {
if (hm.get(num) == null) {
return null;
} else {
return hm.get(num).toString(); }
} /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String arg = args[0];
String result = "";
for (int i = 0; i < arg.length(); i++) {
result += getNum(arg.substring(i, i + 1));
}
System.out.println("您的原始数据为" + args[0] + "\n您的转换结果为" + result);
}}C:\>
C:\>
C:\>javac FromOneToZero.javaC:\>java FromOneToZero 1234567890
您的原始数据为: 1234567890
您的转换结果为: 壹贰叁肆伍陆柒捌玖零
我要回寝室了,没有时间写的再好点。看看能满足你的要求不。
明天我再来给你修改
{
public static void main(String[] args)
{
String sNum = args[0];
String result = "";
for (int i = 0; i < sNum.length(); i++)
{
switch(sNum.charAt(i))
{
case '0': result+="零";break;
case '1': result+="壹";break;
case '2': result+="贰";break;
case '3': result+="叁";break;
case '4': result+="肆";break;
case '5': result+="伍";break;
case '6': result+="陆";break;
case '7': result+="柒";break;
case '8': result+="捌";break;
case '9': result+="玖";break;
default: System.out.println("存在非法的数字!");
System.exit(0);break;
}
}
System.out.println(" the number " + sNum + "is changed into " + result);
}
}
http://community.csdn.net/Expert/topic/5093/5093849.xml?temp=.9010889我的绝对经典答案: String[] num = new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
String[] unit = new String[]{"","拾","佰","仟","万","拾万","佰万","仟万","亿","拾亿","佰亿","仟亿","万亿","十万亿","佰万亿","仟万亿"}; //不够自己再加
String src = "00100000300025";
String desc = ""; // 转换数字
int len = src.length();
String[] descc = new String[len];
for (int i=0; i<len; i++) {
descc[i] = num[src.charAt(i) - '0'];
} // 加上单位
for (int i=0; i<len; i++) {
desc += descc[i];
if (!(descc[i].equals("零"))) {
desc += unit[len-1-i];
}
} // 去掉多余的”零“
desc = desc.replaceAll("零+", "零");
desc = desc.replaceAll("^零+", "");
desc = desc.replaceAll("零+$", ""); System.out.println(desc);