阿拉伯数字的金额转换成中国传统的形式 如:50028 转换为伍万零仟零佰贰拾捌 注:允许用户输入一个不超过14位的整数程序1(正确的)import java.io.*;
import java.util.*;
class CNAmount3{
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = null;
while (!"over".equals(input=br.readLine()))
{
try {
Long.parseLong(input);
}
catch(NumberFormatException nue)
{
System.err.println("Invalid integer!");
continue;
}
System.out.println(transfer(input));
}
}
public static Map digit = new HashMap();
static {
digit.put("0", "零");
digit.put("1", "壹");
digit.put("2", "贰");
digit.put("3", "叁");
digit.put("4", "肆");
digit.put("5", "伍");
digit.put("6", "陆");
digit.put("7", "柒");
digit.put("8", "捌");
digit.put("9", "玖");
}
public static String[] unit = {"元", "拾", "佰", "仟", "万",
"拾", "佰", "仟", "亿","拾", "佰", "仟", "兆", "拾", "佰", "仟"};
public static String transfer(String num) {
StringBuffer result = new StringBuffer();
char[] chars = num.toCharArray(); //从右向向左逐位进行转换
int position = 0;
for (int i=chars.length-1; i>=0; i--) {
result.insert(0, unit[position]);
result.insert(0, digit.get(chars[i]+""));
position++;
} return result.toString();
}
程序2(自己写的)帮忙把程序2修改一下达到和程序1一样的效果import java.util.*;
import java.io.*;
public class MoneyNumber_Change1 {
public static Map digit=new HashMap();
static {
digit.put("0", "零");
digit.put("1", "壹");
digit.put("2", "贰");
digit.put("3", "叁");
digit.put("4", "肆");
digit.put("5", "伍");
digit.put("6", "陆");
digit.put("7", "柒");
digit.put("8", "捌");
digit.put("9", "玖"); }
public static String[]unit={
"元", "拾", "佰", "仟", "万",
"拾", "佰", "仟", "亿","拾", "佰", "仟", "兆", "拾", "佰", "仟" };
public static String transfer(String num)
{
char[]c1=num.toCharArray();
char[]c2=new char[num.length()];
for(int i=num.length(),j=0;i>=0;i--,j++)
{
c2[j]=c1[i];
}
return String.valueOf(c2);
}
//********************************************估计上面的需要修改
public static void main(String[]args)throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String input=null;
while(!"over".equals(input=br.readLine()))
{
try
{
Long.parseLong(input);
}
catch(NumberFormatException nfe)
{
System.err.println ("input error!");
continue;
}
System.out.println (transfer(input));
}
}
}
import java.util.*;
class CNAmount3{
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = null;
while (!"over".equals(input=br.readLine()))
{
try {
Long.parseLong(input);
}
catch(NumberFormatException nue)
{
System.err.println("Invalid integer!");
continue;
}
System.out.println(transfer(input));
}
}
public static Map digit = new HashMap();
static {
digit.put("0", "零");
digit.put("1", "壹");
digit.put("2", "贰");
digit.put("3", "叁");
digit.put("4", "肆");
digit.put("5", "伍");
digit.put("6", "陆");
digit.put("7", "柒");
digit.put("8", "捌");
digit.put("9", "玖");
}
public static String[] unit = {"元", "拾", "佰", "仟", "万",
"拾", "佰", "仟", "亿","拾", "佰", "仟", "兆", "拾", "佰", "仟"};
public static String transfer(String num) {
StringBuffer result = new StringBuffer();
char[] chars = num.toCharArray(); //从右向向左逐位进行转换
int position = 0;
for (int i=chars.length-1; i>=0; i--) {
result.insert(0, unit[position]);
result.insert(0, digit.get(chars[i]+""));
position++;
} return result.toString();
}
程序2(自己写的)帮忙把程序2修改一下达到和程序1一样的效果import java.util.*;
import java.io.*;
public class MoneyNumber_Change1 {
public static Map digit=new HashMap();
static {
digit.put("0", "零");
digit.put("1", "壹");
digit.put("2", "贰");
digit.put("3", "叁");
digit.put("4", "肆");
digit.put("5", "伍");
digit.put("6", "陆");
digit.put("7", "柒");
digit.put("8", "捌");
digit.put("9", "玖"); }
public static String[]unit={
"元", "拾", "佰", "仟", "万",
"拾", "佰", "仟", "亿","拾", "佰", "仟", "兆", "拾", "佰", "仟" };
public static String transfer(String num)
{
char[]c1=num.toCharArray();
char[]c2=new char[num.length()];
for(int i=num.length(),j=0;i>=0;i--,j++)
{
c2[j]=c1[i];
}
return String.valueOf(c2);
}
//********************************************估计上面的需要修改
public static void main(String[]args)throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String input=null;
while(!"over".equals(input=br.readLine()))
{
try
{
Long.parseLong(input);
}
catch(NumberFormatException nfe)
{
System.err.println ("input error!");
continue;
}
System.out.println (transfer(input));
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货