案例:把小写金额转成大写金额,比如要转账123456.00元,需要写成”壹拾贰万叁仟肆佰伍拾陆元整“。代码如下:

import java.text.DecimalFormat;
import java.util.Scanner;/*** 金额转换*/
public class Example {// 大写数字private final static String[] STR_NUMBER = { "零", "壹", "贰", "叁", "肆", "伍","陆", "柒", "捌", "玖" };private final static String[] STR_UNIT = { "", "拾", "佰", "仟", "万", "拾","佰", "仟", "亿", "拾", "佰", "仟" };// 整数单位private final static String[] STR_UNIT2 = { "角", "分", "厘" };// 小数单位public static void main(String[] args) {Scanner scan = new Scanner(System.in);// 创建扫描器System.out.println("请输入一个金额");// 获取金额转换后的字符串String convert = convert(scan.nextDouble());System.out.println(convert);// 输出转换结果}/*** 获取整数部分*/public static String getInteger(String num) {if (num.indexOf(".") != -1) { // 判断是否包含小数点num = num.substring(0, num.indexOf("."));}num = new StringBuffer(num).reverse().toString(); // 反转字符串StringBuffer temp = new StringBuffer(); // 创建一个StringBuffer对象for (int i = 0; i < num.length(); i++) {// 加入单位temp.append(STR_UNIT[i]);temp.append(STR_NUMBER[num.charAt(i) - 48]);}num = temp.reverse().toString();// 反转字符串num = numReplace(num, "零拾", "零"); // 替换字符串的字符num = numReplace(num, "零佰", "零"); // 替换字符串的字符num = numReplace(num, "零仟", "零"); // 替换字符串的字符num = numReplace(num, "零万", "万"); // 替换字符串的字符num = numReplace(num, "零亿", "亿"); // 替换字符串的字符num = numReplace(num, "零零", "零"); // 替换字符串的字符num = numReplace(num, "亿万", "亿"); // 替换字符串的字符// 如果字符串以零结尾将其除去if (num.lastIndexOf("零") == num.length() - 1) {num = num.substring(0, num.length() - 1);}return num;}/*** 获取小数部分*/public static String getDecimal(String num) {// 判断是否包含小数点if (num.indexOf(".") == -1) {return "";}num = num.substring(num.indexOf(".") + 1);// 反转字符串num = new StringBuffer(num).reverse().toString();// 创建一个StringBuffer对象StringBuffer temp = new StringBuffer();// 加入单位for (int i = 0; i < num.length(); i++) {temp.append(STR_UNIT2[i]);temp.append(STR_NUMBER[num.charAt(i) - 48]);}num = temp.reverse().toString(); // 替换字符串的字符num = numReplace(num, "零角", "零"); // 替换字符串的字符num = numReplace(num, "零分", "零"); // 替换字符串的字符num = numReplace(num, "零厘", "零"); // 替换字符串的字符num = numReplace(num, "零零", "零"); // 替换字符串的字符// 如果字符串以零结尾将其除去if (num.lastIndexOf("零") == num.length() - 1) {num = num.substring(0, num.length() - 1);}return num;}/*** 替换字符串中内容*/public static String numReplace(String num, String oldStr, String newStr) {while (true) {// 判断字符串中是否包含指定字符if (num.indexOf(oldStr) == -1) {break;}// 替换字符串num = num.replaceAll(oldStr, newStr);}// 返回替换后的字符串return num;}/*** 金额转换*/public static String convert(double d) {// 实例化DecimalFormat对象DecimalFormat df = new DecimalFormat("#0.###");// 格式化double数字String strNum = df.format(d);// 判断是否包含小数点if (strNum.indexOf(".") != -1) {String num = strNum.substring(0, strNum.indexOf("."));// 整数部分大于12不能转换if (num.length() > 12) {System.out.println("数字太大,不能完成转换!");return "";}}String point = "";// 小数点if (strNum.indexOf(".") != -1) {point = "元";} else {point = "元整";}// 转换结果String result = getInteger(strNum) + point + getDecimal(strNum);if (result.startsWith("元")) { // 判断是字符串是否已"元"结尾result = result.substring(1, result.length()); // 截取字符串}return result; // 返回新的字符串}
}

执行结果如下图所示:

把小写金额转成大写金额 (Java经典编程案例)相关推荐

  1. Java工具包:小写金额转换成大写金额

    源代码如下 package com.jian.stringUtil;/*** 工具类:小写金额转换成大写金额* * @author jianxuanbing* */ @SuppressWarnings ...

  2. 工具篇——MoneyFormatUtil(用于将人民币小写金额转换成大写金额)

    写代码的四点: 1.明确需求.要做什么? 2.分析思路.要怎么做?(1,2,3--) 3.确定步骤.每一个思路要用到哪些语句.方法和对象. 4.代码实现.用具体的语言代码将思路实现出来. 学习新技术的 ...

  3. PB中小写金额转换成大写金额(发票类型)

    PB中小写金额转换成大写金额 //================================================================= // 功能:小写金额转换成大写金额 ...

  4. 小写金额转换成大写金额的函数

    编写一个收费软件时要用到一个小写金额转换成大写金额的函数,我曾在网上找到一个用Powerbuilder写的函数,长达四五十行之巨,后来我自己用DELPHI写了一个函数,寥寥几行代码就搞定: funct ...

  5. 使用javabean把小写金额转换成大写金额

    public static void main(String[] args) {moneyConversion mc=new moneyConversion();String money=" ...

  6. 将小写金额转换成大写金额[存储过程版]

    CREATE FUNCTION FAtoC /* 金额阿拉伯数字转换为中文的自定义函数 */ ( @ChangeMoney Money ) RETURNS VarChar(100) AS BEGIN ...

  7. 用switch语句根据消费金额计算折扣 (Java经典编程案例)

    本例子用switch语句计算累计金额达到一定数额时,将享受不同的折扣价格.比如,消费满200会打折,200到400元,打9.5折:400到600元,打9折:600到800元,打8.5折:800到100 ...

  8. 实现字符串大小写的转换 (Java经典编程案例)

    创建窗体,实现将字符串中的字母全部转换为大写或者小写,代码如下: import java.awt.EventQueue; import java.awt.event.ActionEvent; impo ...

  9. 实现字符和Unicode码互换 (Java经典编程案例)

    Unicode是一种字符编码,它可以显示各国语言的各种文字,标点,制表符等所有字符,也是现今最通用的字节编码系统. 本例子将在界面中 实现字符和Unicode码互换,代码如下: package myt ...

  10. 用java语言实现汉诺塔问题 (Java经典编程案例)

    用递归实现汉诺塔问题,代码如下: import java.util.Scanner;/*** 汉诺塔问题*/ public class Example {public static void move ...

最新文章

  1. 打印不同对象的字节表示 ( 对int*强制转换成unsigned char*的理解 )
  2. 接口的特点及,抽象类与接口的区别
  3. zen3架构_Zen3架构移动版CPU基准测试成绩泄露,IPC性能大增
  4. centos7下kafka2.12-2.1.0的安装及使用
  5. java 命令行eclipse_在命令行中运行eclipse中创建的java项目
  6. 共享没有权限访问权限_如何与家人共享SmartThings访问权限
  7. 07-对图像进行膨胀操作
  8. java菜单栏支持多种语言,多语工具包multilanguage(java版)
  9. H5_0020:判断安卓苹果平台
  10. vue如何编写组件可以通过Vue.use()使用
  11. 把live2D模型放上网页
  12. MyEclipse里自制JSP模板
  13. 帝国CMS二次开发入门教程
  14. Halcon学习笔记-工业相机千兆网线和USB优劣对比
  15. ddr4 lpddr4区别_笔记本内存LPDDR3就一定不如DDR4吗?宏旺半导体解释两者的区别?...
  16. recovery的一些开发点滴
  17. 小屏隐藏大屏幕显示css,CSS 侧边栏在小屏设备中进行隐藏
  18. Gitlab Custom_hooks集代码规则注释校验脚本(pre-receive)
  19. 数控车床操控维修实训系统
  20. 海康摄像头SDK开机启动第一个摄像头不显示问题

热门文章

  1. 山东省智慧城市产业技术创新战略联盟成立
  2. 阿里巴巴开发规约之编程规约(1)
  3. d3,svg中如何让rect上显示文字
  4. 新农合医疗保险补偿制度
  5. 双一流大学王牌专业计算机,重点大学的王牌专业,双一流大学的王牌专业都有哪些?...
  6. List<? extends T>和List<? super T>之间的区别
  7. 每日一诗词 —— 临江仙
  8. 友情链接加nofollow_如何在WordPress中添加Nofollow链接(适用于初学者的简单指南)
  9. Feescale K64开发笔记1: 开发环境的建立
  10. 初学者应该选择什么样吉他桶型?新手入门畅销民谣吉他牌子推荐