import java.text.DecimalFormat;
import java.util.Scanner;import javax.swing.JOptionPane;public class ConvertMoney {// 大写数字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);// 输出转换结果}/*** 获取可数部分* * @param num*            金额* @return 金额整数部分*/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]); //数字0-9的ASCII码为48-57}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;}/*** 获取小数部分* * @param num*            金额* @return 金额的小数部分*/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;}/*** 替换字符串中内容* * @param num*            字符串* @param oldStr*            被替换内容* @param newStr*            新内容* @return 替换后的字符串*/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;}/*** 金额转换* * @param d*            金额* @return 转换成大写的全额*/public static String convert(double d) {// 实例化DecimalFormat对象DecimalFormat df = new DecimalFormat("#0.##"); //#没有则为空,0没有则补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. 3.每天一个java小程序之累加累乘

    3.每天一个java小程序之累加累乘 java小练习之数的累加累乘,在于锻炼数学计算思维. 每天一个小程序,每天进步一点点. 代码如下: package com.zou; import java.ut ...

  2. 基于Bluemix快速构建部署一款Java小程序——微博影响力分析器

    一.前言 近年来IT界风云际会,各种新概念如大数据.云平台.虚拟化等,如雨后春笋般层出不穷.而云平台,可以说是近些年来引领时代新潮的边缘概念之一,各大厂商竞相推出各种云产品,抢占云市场高地.近期,IT ...

  3. 如何编写一个简单的正整数十进制转二进制Java小程序

    提示:浏览器上可以直接去搜索进制转换. 十进制转二进制小程序 代码实现 一.需要检查电脑是否配置Java环境变量 1.首先win+R,输入cmd,运行cmd命令. 2.依次输入如下命令: 3.如果出现 ...

  4. java 获取文件所在的文件夹_带你0基础编写一个Java小程序,领略Java程序从编写到编译再到运行的全流程...

    在学习Java之前我们需要先认识下什么是计算机语言?计算机语言又有哪些分类?在了解这些后对我们理解学习帮助是很大的. 要知道计算机语言是人与计算机之间进行信息交流沟通的一种特殊语言,又分为机械语言.汇 ...

  5. 【开发日常】【Java】Java小程序汽车租赁

    <Java小程序--汽车租赁> 1.描述:刚学Java写的小程序,用到类的继承,多态,abstract抽象方法. 2.工具:eclipse.exe 3.功能:选择子类(轿车 / 客车) 选 ...

  6. 微信小程序开发实例:猜数字小游戏

    这学期选修了<微信小程序设计>这门通识课,最近准备把本学期的部分小作业整理一下. 一.案例描述 设计一个微信小程序,由后台生成一个0~100的随机整数,用户猜这个整数,并在输入框中输入用户 ...

  7. Wifi热点java_用笔记本电脑开启热点Java小程序

    用笔记本电脑开启热点Java小程序是一条命令设置笔记本成无线热点, 制作"开启无线热点工具,这个小工具实际上是用java来执行cmd命令来完成操作,当然也可以反射jar里边的字节码文件. 使 ...

  8. 简单Java小程序----有界面ATM机

    继<简单Java小程序---无界面ATM机>以后,尝试对有界面ATM机改写,对面向对象的了解又深了一层! 桌面的创建过程       由于使用的NetBean软件没有提供专用的控件拖拽使用 ...

  9. java小程序_Java小程序

    java小程序 An applet is a special kind of Java program that runs in a Java enabled browser. This is the ...

最新文章

  1. mySql中使用命令行建表基本操作
  2. php sha256hex,crypto/sha256(加密/sha256)
  3. 编码规范 | Java函数优雅之道(上)
  4. mysql建用户无密码_mysql 新建用户,授权,删除用户,修改密码
  5. 再也回不去的 GitHub。。。
  6. maven生成可执行jar包
  7. asp.net 利用特性和正则表达式进行字段的验证(attribute)
  8. 11年的macbook还能用吗_致我2011年买的macbook pro 15寸一封信
  9. java开源cad_.Net开源项目(包含CAD支持)
  10. 知到网课大学生安全文化考试试题|真题|题库(含答案)
  11. ADAM : A METHOD FOR STOCHASTIC OPTIMIZATION
  12. 分享职场心得《14》
  13. 蜜蜂在挡板外和框梁顶造赘脾的几个要素及处理方法
  14. html5 横向溢出隐藏,溢出:隐藏的HTML5视频
  15. 蓝奏云 php 协议,蓝奏云网盘最新协议完整版附一套网络验证
  16. 后台管理系统登录思路
  17. Angular 组件类测试
  18. mpv播放器键盘快捷键
  19. Chrome模拟微信、QQ内置浏览器
  20. MBR分区的恢复 - 数据恢复

热门文章

  1. python自动化办公演示视频-Python自动化办公培训视频教程 百度云网盘
  2. 国外大神一张图学会python-没有接触过编程Python难学吗?
  3. python能做什么毕业设计-毕业设计涉及到python?看我用Python优雅的写论文!
  4. 如何自学python-如何自学Python编程呢?老男孩Python学习方法
  5. 语音识别是什么意思_语音识别的翻译_音标_读音_用法_例句_爱词霸在线词典
  6. HTML5语音识别(已被抛弃)
  7. python老师 课时费_花10分钟写一个Python脚本,搞定了初中老师一下午的工作
  8. 带网格的_【我看身边的网格化】申港街道:一人一板穿梭楼宇小巷 一网一格解决百姓问题...
  9. JavaScript基础简单入门
  10. java 日志时间格式_java.util.logging.Logger 使用中关于时间格式的问题