MyException - 我的异常网
当前位置:我的异常网» 编程 » 人民币小写变换大写(awt)

人民币小写变换大写(awt)

www.MyException.Cn  网友分享于:2013-10-15  浏览:14次
人民币小写转换大写(awt)
之前参考了一位前辈的程序,用awt写了个简单的程序
本人不才,望指点
package mianshi.guanglianda;

import java.awt.Button;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class AWTSimpleToBig extends Frame {


private TextField simple = new TextField(10);
private TextField big = new TextField(50);
private Button button = new Button("SimpleToBig");

public static void main(String[] args) {
new AWTSimpleToBig().lanch();
}

public void lanch() {
Panel p = new Panel();

p.add(simple);
p.add(button);
p.add(big);

this.setTitle("金额转换");
this.setBounds(300, 100,1,1);
this.add(p);

this.addWindowListener(new WindowAdapter(){

@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}

});

/*
* button 被单击时处理的事件
*/
button.addMouseListener(new ButtonMonitor());

this.pack();
this.setVisible(true);
}

class ButtonMonitor extends MouseAdapter {

@Override
public void mouseClicked(MouseEvent e) {
String simpleStr = simple.getText();
double money = Double.parseDouble(simpleStr);
String result = new ButtonMonitor().simpleToBig(money);
big.setText(result);
}

/*
* 转换程序
*/
public  String simpleToBig(double money) {

String result = "";

char[] hunit = {'拾','佰','仟'}; //段内的量度
char[] vunit = {'万','亿'}; //段间的量度
char[] digit = {'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'}; //小写对应的大写

long longMoney = (long)(money * 100);
String strMoney = String.valueOf(longMoney); //将小数变成整数,再放入字符串中

String head = strMoney.substring(0,strMoney.length() - 2); //整数部分
String tail = strMoney.substring(strMoney.length() - 2); //小数部分

String prefix = ""; //存放转换的整数部分
String suffix = ""; //存放转换的小数部分

if(tail.equals("00")) {
suffix += "整";
}else {
char tailChar[] = tail.toCharArray();
suffix += digit[tailChar[0] - '0'] + "角" //将小数部分表示出来
+ digit[tailChar[1] - '0'] + "分"; //'0' ASCII 为 48,相减得索引号
}

char headChar[] = head.toCharArray();

/*
* 考虑零的情况,记录0的个数
*/

char zero = '0';
byte zeroSize = 0;

/*
* 先不考虑有0的情况,有点小复杂,因为有0的地方不能有单位
*
* 等能实现大概功能时,再来考虑有0的情况
*/
for(int i=0;i<headChar.length;i++) {
int idx = (headChar.length - i - 1) % 4; //判断“段内”,"十,佰,千" idx=0,表示每4位分段了
int vidx = (headChar.length - i - 1) / 4; //判断“段间”,“万,亿”

if(headChar[i] == '0') { //考虑0的情况了
zeroSize ++;
if(zero == '0') {
zero = digit[0];
}else if(idx == 0 && zeroSize < 4 && vidx > 0) {
prefix += vunit[vidx - 1]; //当遇到1,1000,1234时, 1千万才能表示出来
zero = '0'; //当1千万表示出来时,“零”就不需要了,在后来判断zero != 0
}
continue;
}

if(zero != '0') { //没有转成千万时,就将”零“加入
prefix += zero; //不至于出现很多个”零“
}

zeroSize = 0; //还原成以前的

prefix += digit[headChar[i] - '0']; //‘1’变成‘壹’

if(idx > 0) {
prefix += hunit[idx - 1]; //加上 "十,佰,千"
}
if(idx == 0 && vidx > 0) {
prefix += vunit[vidx - 1]; //加上 “万,亿”
}
}

if(prefix.length() > 0) {
result = prefix + "园" + suffix ;
}

return result;
}

}

}

文章评论

为什么程序员都是夜猫子
为什么程序员都是夜猫子
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
10个调试和排错的小建议
10个调试和排错的小建议
那些争议最大的编程观点
那些争议最大的编程观点
每天工作4小时的程序员
每天工作4小时的程序员
中美印日四国程序员比较
中美印日四国程序员比较
一个程序员的时间管理
一个程序员的时间管理
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
旅行,写作,编程
旅行,写作,编程
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员的鄙视链
程序员的鄙视链
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
鲜为人知的编程真相
鲜为人知的编程真相
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
程序员和编码员之间的区别
程序员和编码员之间的区别
代码女神横空出世
代码女神横空出世
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
我是如何打败拖延症的
我是如何打败拖延症的
 程序员的样子
程序员的样子
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
漫画:程序员的工作
漫画:程序员的工作
程序员必看的十大电影
程序员必看的十大电影
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
编程语言是女人
编程语言是女人
我的丈夫是个程序员
我的丈夫是个程序员
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
总结2014中国互联网十大段子
总结2014中国互联网十大段子
如何成为一名黑客
如何成为一名黑客
老程序员的下场
老程序员的下场
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员都该阅读的书
程序员都该阅读的书
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有