package com.study;
/**
* @description 记得有次去面试的时候,被问到将数字转化为人命币大写的题目,刚开始看到题目的时候觉得很容易,但是越看越觉得没有头绪;
* 今天在看C#的例子的时候,发现有用C#实现的实例,闲来无事,用Java也实现一下; 整数部分支持16位到万亿,
* 小数部分支持4位到毫,共计20位;
* @author xtayhame date 2020年10月21日
*
* @addr:huanghuagang.guangzhou
*/
public class ChinesNumber {
static String[] HB_UPPER = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "扒", "玖" };
static String[] HB_JZ1 = { "仟", "佰", "拾", "" };
static String[] HB_JZ2 = { "", "万", "亿", "万亿" };
static String[] HB_JZ3 = { "角", "分", "厘", "毫" };
/**
* 将数字转换为大写
*
* @param val
* @return
*/
public static String toChinese(String money) {
String ret = "";
String[] monegArray = money.split("\\.");
String interGalNum = monegArray[0];
int unitLength = (interGalNum.length() + 3) / 4;
if (interGalNum.length() > 16) {
System.out.println("暂不支持超过16位整数的数字.");
return null;
}
String addStr = "";
String preStr = "";
for (int i = 0; i < unitLength; i++) {
String innerRet = "";
// 如果是第一次截取,可能是四位或者不够四位
if (i == 0) {
preStr = interGalNum.substring(addStr.length(), interGalNum.length() - (unitLength - 1) * 4);
} else {
// 从左到右分别获取四位数
preStr = interGalNum.substring(addStr.length(), addStr.length() + 4);
}
String newPreStr = "";
// 为方便处理,不足4位,补0
if (preStr.length() < 4) {
newPreStr = String.format("%04d", Integer.parseInt(preStr));
} else {
newPreStr = preStr;
}
String currUnit = HB_JZ2[unitLength - i - 1]; // 获取当前的HB_JZ2值
for (int j = 0; j < newPreStr.length(); j++) {
String num2 = String.valueOf(newPreStr.charAt(j));
if ("0".equals(num2)) {
continue;
}
innerRet = innerRet + HB_UPPER[Integer.parseInt(num2)] + HB_JZ1[j];
}
ret = ret + innerRet + " " + currUnit + " ";
addStr += preStr;
}
// 处理小数
if (monegArray.length == 2) {
String innerRet = "";
String decimalNum = monegArray[1];
// 小数最多只能是4位
if (decimalNum.length() > 4) {
decimalNum = decimalNum.substring(0, 4);
}
for (int i = 0; i < decimalNum.length(); i++) {
String num1 = String.valueOf(decimalNum.charAt(i));
innerRet = innerRet + HB_UPPER[Integer.parseInt(num1)] + HB_JZ3[i];
}
ret = ret + innerRet;
}
return ret;
}
public static void main(String[] args) {
String a = "1234567891234567.6789";
System.out.println(ChinesNumber.toChinese(a));
}
}
分享到:
相关推荐
本资源为纯手工代码,下载便可使用。读取人命币的纯工具类。简单好用,便于理解。支持原创
国际海上人命安全公约.doc
本文档详细介绍了名为PE-Expert3PEV板(MWPE3-PEV)的硬件参考,这是一种专为电力电子应用设计的数字控制平台。 首先,文档中列出了若干重要的注意事项。这些注意事项强调了用户在使用和理解该手册和产品时应遵循的...
修正案被广泛接受并生效的流程是,当修正案被足够数量的缔约方接受后(通常为三分之二),它们将在六个月后对所有缔约方生效。这意味着缔约方需按照国际公约规定的时间表更新本国法规和船舶标准,以确保与国际标准...
在伺服系统中,变频器可以将固定频率的交流电转换为可变频率的交流电,从而控制电机的运行。 伺服系统是一种能够精确控制电机运动的系统。它通过接收外部的控制信号,将信号转换为电机的运动指令,从而控制电机的...
从原有产品可以自动转换参数的驱动转换功能,当交换变频器 时,或万一发生故障需要交换变频器时,可以省去参数设定的 作业。 4). 配备USB口,可以和电脑简单连接。 本产品可用于一般工业用三相交流电机的调速控制...
无线电通信在船舶安全中扮演着至关重要的角色,自100多年前首次在船上应用以来,其主要目标已从商业信息传输转变为保障海上人命和财产安全。船舶通信技术的发展经历了从早期的摩尔斯电报到现代的数字化、自动化的...
在现代远洋船舶中,自动舵已广泛应用,主要为电动液压舵机。 本章内容分为五个部分:第一部分介绍了舵机电力拖动与控制的基本要求,根据国际海上人命安全公约(SOLAS公约),所有大于500总吨的国际航行货船和大于...
该规则的目的是为经修正的《1974年国际海上人命安全公约》第II-2章所要求的消防安全系统提供具体工程规范的国际标准。本规则对于经修正的《1974年国际海上人命安全公约》所要求的消防安全系统将具有强制性。 定义 ...
智能逃生引导系统是隧道交通安全管理的重要组成部分,旨在提供快速、安全的逃生通道,减少人命伤亡和经济损失。本系统采用远程控制、声光报警、疏散标志、信息板提示等设备,帮助隧道内人员及车辆快速逃离灾害现场。...
AIS(Automatic Identification System)系统是一种基于信息技术的船舶识别、监视和通信系统,它利用卫星定位技术、数字通信技术和信息处理技术,旨在提高海上交通安全、效率和环境保护。AIS系统克服了传统船舶避碰...
电子海图系统(ECDIS,Electronic Chart Display and Information System)是现代航海技术的一大革新,它结合了先进的计算机技术和数字化海图数据,为船舶驾驶员提供了一种高效、准确的导航工具。ECDIS的出现应对了...
碳水化物)供能,因为碳水化合物在体内可以转化为葡萄糖,为大脑提供必要的能量。 3. 河豚毒素:河豚鱼的毒性主要集中在内脏(B.内脏)和皮肤(D.皮肤),肌肉部分相对毒性较小,但仍需谨慎处理。 4. 砷中毒检测:...
IMSBC规则,全称为《国际海运固体散装货物规则》(International Maritime Solid Bulk Cargoes Code),是全球海运行业中用于规范和确保固体散装货物安全运输的重要法规。该规则的制定与生效旨在防止因不当装载、积载...
当下微博已经成为各个年龄段网友冲浪的重要平台之一,许多影视明星、大V网红、官方代表也纷纷入驻微博这一平台.在此背景下,微博已经成为众多粉丝获取爱豆近况、爱豆自拍、和爱豆互动的有效平台之一,于是获取爱豆的...
海事应急辅助指挥系统是一个系统工程,范围上覆盖中国MRCC、各MRCC(MRSC),技术上涉及到网络...利用海上落水人员漂移等数学模型,初步建立以实现人命救助的辅助指挥、应急预案的应用管理为重点海事应急辅助指挥系统。
数据处理是指对监测数据的处理,包括数据清洁、数据转换和数据分析等。数据分析是指对监测数据的分析,包括数据 Mining 和数据挖掘等。 在通信系统中,介绍了通信系统的组成部分和通信协议。通信系统包括数据传输和...
不过,我们可以假设这是关于海难发生后,人员生存几率的统计数据,并以这个假设为基础来讨论相关知识点。 首先,海难生存几率统计主要关注的是在海上灾难发生时,船舶遇险人员能够生还的概率。这个统计数字对于海事...
综上所述,宾馆消防安全制度是一个综合性的安全管理框架,涵盖了预防、应急响应、人员培训和责任分配等多个方面,确保宾馆在面临火灾风险时能够迅速有效地进行应对,保护人命财产安全。在互联网时代,这样的制度也...