频道栏目
首页 > 程序开发 > 软件开发 > Java > 正文
Java金额转换_阿拉伯数字转换成中国传统形式
2015-05-11 08:32:07         来源:黑_影的专栏  
收藏   我要投稿

这个题目我在网上看到有好多种做法,我自己也想出了一种做法;不过因为时间不够,只能转换整数,没把角分弄进去。

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*
 * 思路:
 * 1.定义两张表,存储中文数字和货币单位。
 * 2.键盘录入使用IO流的BufferedReader进行接收键盘录入。
 * 3.把录入的阿拉伯数字弄成字符数组,把每个数字所在位置的角标对着中文数字的表进行转换,
 *    转换完后再从对应的位置插入货币单位。
 * 4.把格式进行修正匹配后打印输出。
 */
public class MoneyConvert {
	
	public static void main(String[] args) {
		//创建中文大写数字的表和货币单位的表
		String[] cnNum = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒","捌", "玖"};
		String[] unit = {"", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟"};
		
		System.out.println("请输入金额:");
		
		//创建流对象,用于接收键盘录入的数据
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		try {
			//把键盘接收的数据打散成字符数组
			char[] chNumArr = in.readLine().toCharArray();
			
			//把阿拉伯数字转换为中文的大写数字
			String[] convertNum = new String[chNumArr.length];
			for(int x = 0; x < chNumArr.length; x++) {
				int num = Integer.parseInt(chNumArr[x]+"");
				convertNum[x] = cnNum[num];
			}
			
			//嵌入货币单位到转换好的中文大写数字里去
			StringBuilder container = new StringBuilder("圆整");
			for(int x = convertNum.length -1, y = 0; x >=0; x--, y++) {
				String num = convertNum[x];
				if(num.equals("零")) {
					//判断数位是否是仟万亿的位置,是则插入单位
					if(y == 4 || y == 8)
						container.insert(0, num+unit[y]);
					else
						container.insert(0, num);
				} else {
					container.insert(0, num+unit[y]);
				}
			}
			
			//格式修正
			String put = container.toString();
			put = put.replaceAll("佰零+万", "佰万");
			put = put.replaceAll("佰零+亿", "佰亿");
			put = put.replaceAll("仟零+万", "仟万");
			put = put.replaceAll("仟零+亿", "仟亿");
			put = put.replaceAll("零+", "零");
			put = put.replaceAll("零万", "零");
			put = put.replaceAll("拾零", "拾");
			put = put.replaceAll("零圆", "圆");
			
			//完成后打印输出
			System.out.println("该金额的大写形式为:"+put);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
		//因为是键盘录入,接收完数据后流会自然断开了,所以无需调用关流资源的方法了
	}
	
}
还在学习中,写得可能不太好。

 

 

点击复制链接 与好友分享!回本站首页
上一篇:解决Ajax框架下页面回退刷新问题
下一篇:Java Cache模拟器(图形界面)
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站