数字转换成人民币大写格式(带界面)
今天看了算法的公开课,有一个把数字转换成人民币大写的算法。
后面就想着自己写一个界面的,好几天没有写一个完整的程序的。
当然有一些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);}
}
数字转换成人民币大写格式(带界面)相关推荐
- 关于数字转换成人民币大写的问题
我们在参与大型项目时,难免会遇到数值转换人民币大写的情况.因为我今天接触了一个这样的转换,但原代码存在BUG,转换经常出现问题.于是我就去网上搜索了相关资源.由于没有找到相对权威的转换代码,网上给出的 ...
- JAVA浮点数转人民币读法_算法--java实现将数字转换成人民币大写(迅雷面试题)...
public classRmb {/*** 人民币的基本信息和操作 * *@authorsoyoungboy *@version1.0*/ private double number; //人民币的数 ...
- oracle数字转换成人民币大写
网上找了好几篇博客,测试或多或少有问题,以下已验证可以使用. create or replace function cux_convert_cny(p_num in number default nu ...
- 浮点数字转换成人民币的大写字体
新开博客,贴上一段平常时写的代码,权当记录和分享. 下面是代码块(有比较详细的注释,转换过程中需要注意的是0的处理): //浮点数字转换成人民币的大写字体 import java.util.Scann ...
- 把数字金额转换成人民币大写[原创]
最近在用这个博客,感觉博客园不错,以前用的是新浪的,感觉这个更好,所以好多东西现在转到这边来了. 下面是一个数字转人民币大写的类,不啰嗦了,下面是代码: 1 /**/ /// <summ ...
- js将数字转换成中文大写
//完成将 toChineseNum, 可以将数字转换成中文大写的表示,处理到万级别,例如 toChineseNum(12345),返回 一万二千三百四十五.const toChinesNum = ( ...
- C语言-如何将用户输入的金额数字转换成中文大写?
实战: 如何将用户输入的金额数字转换成中文大写? #include <stdio.h>int main() {// 输入金额转换成大写int money; // 输入数字int money ...
- JavaScript:将输入的一串数字转换成中文大写,最高可写12位(千亿)
将输入的一串数字转换成中文大写,最高可写12位(千亿) 例:输入:10000,输出:壹万 输入:10010,输出:壹万零壹拾 源码: function toChineseBig(num) {// 将接 ...
- 将数字转换成中文大写的算法
//名称:ConvertSignCap //参数:number //返回:CapNumber //描述:将传入的单个数字转换成中文大写形式 //创建人:刘权 2004-11-16 ...
最新文章
- [转]在Eclipse中使用JUnit4进行单元测试(中级篇)
- SortedDictionaryTKey, TValue 类 表示根据键进行排序的键/值对的集合。
- Laravel框架学习 -- php artisan down/up
- C#把数据写到硬盘指定位置
- [ML]--梯度下降 GD 的理解和探究
- [转]javascript中style.left和offsetLeft的使用
- Java 守护线程概述
- 关于fseek不能定位大于2G文件的问题
- .net core实践系列之SSO-同域实现
- 使用@ConditionalOnExpression决定是否生效注释
- 高级JAVA - 多线程之CountDownLatch
- 用asp.net获取服务器和客服端有关信息
- this cluster currently has [1946]/[1000] maximum shards open
- php脚本语法格式,[PHP学习笔记][五]PHP基本语法规则
- 6.高级Magento模型EAV
- 拓端tecdat|数据感知游客的森林公园游憩需求
- linux安全擦除ssd命令,如何在不破坏SSD的情况下安全擦除SSD | MOS86
- 数模笔记:蒙特卡洛模型
- 【原理+实战】AI所有领域SOTA综述 (一)语音识别
- python storm连接mysql_Python ORM Storm 源码修改