今天看了算法的公开课,有一个把数字转换成人民币大写的算法。
后面就想着自己写一个界面的,好几天没有写一个完整的程序的。
当然有一些BUG,没有时间优化,后面在慢慢优化。
自己的名言:每天努力一点儿,总会有回报的。

package com.langxikeji.Demo;import java.awt.Button;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
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 DigitFormat {// 主页面public static Frame frame = new Frame("人民币大写格式转换器");// 放按钮的面板public static Panel panel = new Panel();// 字体的大小public static Font font = new Font("黑体", Font.BOLD, 30);//文本提示public static Label in_label = new Label("请输入待转换数字:");public static Label out_label = new Label("转换后的数字为:");// 输入文本框public static TextField in_tf = new TextField();// 结果文本框public static TextField out_tf = new TextField();// 转换按钮public static Button button = new Button("转换");// 零壹贰叁肆伍陆柒捌玖 数字模板public static String CAPITAL = "零壹贰叁肆伍陆柒捌玖";// 四位数计算进位public static int WAN_YUAN = 10000;// 一位数的情况public static String read_One(int x) {return "" + CAPITAL.charAt(x);}// 四位数的情况public static String read_Four(int x) {int[] nums = new int[4];for (int i = 0; i < nums.length; i++) {nums[i] = x % 10;x /= 10;}String s = read_One(nums[3]) + "仟" + read_One(nums[2]) + "佰"+ read_One(nums[1]) + "拾" + read_One(nums[0]);s = s.replaceAll("零仟", "");s = s.replaceAll("零佰", "");s = s.replaceAll("零零", "");if (s.endsWith("零") && s.length() > 1) {s = s.substring(0, s.length() - 1);}return s;}public static String read(long x) {long a = x % WAN_YUAN;// 个位x /= WAN_YUAN;long b = x % WAN_YUAN;// 万位long c = x / WAN_YUAN;// 亿位String s = read_Four((int) c) + "亿" + read_Four((int) b) + "万"+ read_Four((int) a);s = s.replace("零亿", "");s = s.replace("零万", "");s = s.replace("零零", "");s = s.replace("零拾", "");s = s.replace("亿万", "");if (s.startsWith("亿")) {s = s.substring(1, s.length() - 1);}if (s.endsWith("零") && s.length() > 1) {s = s.substring(0, s.length() - 1);}return s;}public static void init() {in_tf.setText("0");button.addMouseListener(new MouseAdapter() {@Overridepublic void mouseClicked(MouseEvent e) {// TODO Auto-generated method stubsuper.mouseClicked(e);String x = in_tf.getText();x = read(Long.parseLong(x));out_tf.setText(x);}});}public static void main(String[] args) {// 窗体大小frame.setBounds(100, 100, 600, 500);// 采用绝对定位frame.setLayout(null);in_label.setFont(font);in_label.setBounds(50, 60, 260, 140);out_label.setFont(font);out_label.setBounds(50, 200, 260, 140);in_tf.setFont(font);in_tf.setBounds(330, 200, 200, 40);out_tf.setFont(font);out_tf.setBounds(30, 340, 550, 40);button.setFont(font);button.setBounds(400, 400, 80, 80);frame.add(in_label);frame.add(out_label);frame.add(in_tf);frame.add(out_tf);frame.add(button);init();// panel.add(button);// panel.add(tf);frame.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubframe.dispose();}});frame.setVisible(true);frame.setResizable(false);}
}

数字转换成人民币大写格式(带界面)相关推荐

  1. 关于数字转换成人民币大写的问题

    我们在参与大型项目时,难免会遇到数值转换人民币大写的情况.因为我今天接触了一个这样的转换,但原代码存在BUG,转换经常出现问题.于是我就去网上搜索了相关资源.由于没有找到相对权威的转换代码,网上给出的 ...

  2. JAVA浮点数转人民币读法_算法--java实现将数字转换成人民币大写(迅雷面试题)...

    public classRmb {/*** 人民币的基本信息和操作 * *@authorsoyoungboy *@version1.0*/ private double number; //人民币的数 ...

  3. oracle数字转换成人民币大写

    网上找了好几篇博客,测试或多或少有问题,以下已验证可以使用. create or replace function cux_convert_cny(p_num in number default nu ...

  4. 浮点数字转换成人民币的大写字体

    新开博客,贴上一段平常时写的代码,权当记录和分享. 下面是代码块(有比较详细的注释,转换过程中需要注意的是0的处理): //浮点数字转换成人民币的大写字体 import java.util.Scann ...

  5. 把数字金额转换成人民币大写[原创]

    最近在用这个博客,感觉博客园不错,以前用的是新浪的,感觉这个更好,所以好多东西现在转到这边来了. 下面是一个数字转人民币大写的类,不啰嗦了,下面是代码:  1    /**/ /// <summ ...

  6. js将数字转换成中文大写

    //完成将 toChineseNum, 可以将数字转换成中文大写的表示,处理到万级别,例如 toChineseNum(12345),返回 一万二千三百四十五.const toChinesNum = ( ...

  7. C语言-如何将用户输入的金额数字转换成中文大写?

    实战: 如何将用户输入的金额数字转换成中文大写? #include <stdio.h>int main() {// 输入金额转换成大写int money; // 输入数字int money ...

  8. JavaScript:将输入的一串数字转换成中文大写,最高可写12位(千亿)

    将输入的一串数字转换成中文大写,最高可写12位(千亿) 例:输入:10000,输出:壹万 输入:10010,输出:壹万零壹拾 源码: function toChineseBig(num) {// 将接 ...

  9. 将数字转换成中文大写的算法

    //名称:ConvertSignCap   //参数:number   //返回:CapNumber   //描述:将传入的单个数字转换成中文大写形式   //创建人:刘权 2004-11-16    ...

最新文章

  1. [转]在Eclipse中使用JUnit4进行单元测试(中级篇)
  2. SortedDictionaryTKey, TValue 类 表示根据键进行排序的键/值对的集合。
  3. Laravel框架学习 -- php artisan down/up
  4. C#把数据写到硬盘指定位置
  5. [ML]--梯度下降 GD 的理解和探究
  6. [转]javascript中style.left和offsetLeft的使用
  7. Java 守护线程概述
  8. 关于fseek不能定位大于2G文件的问题
  9. .net core实践系列之SSO-同域实现
  10. 使用@ConditionalOnExpression决定是否生效注释
  11. 高级JAVA - 多线程之CountDownLatch
  12. 用asp.net获取服务器和客服端有关信息
  13. this cluster currently has [1946]/[1000] maximum shards open
  14. php脚本语法格式,[PHP学习笔记][五]PHP基本语法规则
  15. 6.高级Magento模型EAV
  16. 拓端tecdat|数据感知游客的森林公园游憩需求
  17. linux安全擦除ssd命令,如何在不破坏SSD的情况下安全擦除SSD | MOS86
  18. 数模笔记:蒙特卡洛模型
  19. 【原理+实战】AI所有领域SOTA综述 (一)语音识别
  20. python storm连接mysql_Python ORM Storm 源码修改

热门文章

  1. EOJ1270-Arbitrage(套利交易)
  2. 全面加速ADSL宽带速度
  3. matlab实现视频图像去噪完成篇
  4. bing 怎么搜索关键词_Bing更新了网站站长指南,以包含关键字填充
  5. JavaWeb服务器开发(精品这一套就足够)
  6. 苹果相关链接和联系方式
  7. 3DCAT实时渲染云在BIM领域的应用
  8. 详解正则中先行断言的用法
  9. solidity不同sol文件的智能合约调用 A调用B
  10. oracle java listener_oracle监听器启动,实例启动