- /**
- * 程序目的:
- * 从命令行接收一个数,并将其转化为中文金额的大写方式
- * 例如 123.45 --> 壹佰贰拾叁元肆角伍分
- * @sai
- *
- * 看到网上有很多这样的例子程序,不过觉得很不满意。有些程序我从命名上就觉得
- * 实在是不符合规范,程序里面的算法没有让人明白得很清楚的注释,读上去觉得有
- * 点难度,可读性不强。而且很多程序还存在不少bug,随便一测就测出来了。
- * 所以本人还是决定重新写一下这个程序,并且尽量做到消除不必要的bug。这个程
- * 序我没有用什么很精妙的算法,不过用了一些Java类库中的类,像是正则表达式之类
- * 的东西。由于本人对算法不怎么在行,在做转换操作的时候用的是很笨的方法。望各位
- * 大虾海涵,呵呵。
- *
- * 程序的注释我尽量写得详细一点,如果觉得这个程序哪里有问题或者是哪里有改进的
- * 地方欢迎随时跟我交流。
- */
- public class Trans2RMB {
- /**
- * 测试程序的可行性
- * @param args
- */
- public static void main(String[] args) {
- System.out.println("\n--------将数字转换成中文金额的大写形式------------\n");
- Trans2RMB t2r = new Trans2RMB();
- String s = t2r.cleanZero(t2r.splitNum(t2r.roundString(t2r.getNum())));
- // 如果转换过后是一个空串,则不输出屏幕
- if(!"".equals(s)) {
- System.out.println("转换成中文后为:" + s);;
- }
- System.out.println("\n---------------------------------------------");
- }
- /**
- * 从命令行接收一个数,在其中调用 checkNum() 方法对其进行
- * 验证,并返回相应的值
- * @return 如果输入合法,返回输入的这个数
- */
- private String getNum() {
- String s = null;
- System.out.println("请输入一个数字(精确到小数点后两位):");
- // 从命令行输入这个浮点数
- java.util.Scanner scanner = new java.util.Scanner(System.in);
- s = scanner.next();
- // 关闭这个Scanner
- scanner.close();
- // 判断用户输入是否合法
将数字转为中文金额的大写方式(Java版)
最新推荐文章于 2022-11-14 10:07:34 发布