博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java实现 阿拉伯数字转换为汉字数字 算法
阅读量:6975 次
发布时间:2019-06-27

本文共 1836 字,大约阅读时间需要 6 分钟。

package test;

public class NumberFormatTest {
static String[] units = { "", "十", "百", "千", "万", "十万", "百万", "千万", "亿",
"十亿", "百亿", "千亿", "万亿" };
static char[] numArray = { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九' };
/**
* @param args
*/
public static void main(String[] args) {
int num = 245000006;
String numStr = foematInteger(num);
print("num= " + num + ", convert result: " + numStr);
double decimal = 245006.234206;
print("============================================================");
String decStr = formatDecimal(decimal);
print("decimal= " + decimal + ", decStr: " + decStr);
}
private static String foematInteger(int num) {
char[] val = String.valueOf(num).toCharArray();
int len = val.length;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < len; i++) {
String m = val[i] + "";
int n = Integer.valueOf(m);
boolean isZero = n == 0;
String unit = units[(len - 1) - i];
if (isZero) {
if ('0' == val[i - 1]) {
// not need process if the last digital bits is 0
continue;
} else {
// no unit for 0
sb.append(numArray[n]);
}
} else {
sb.append(numArray[n]);
sb.append(unit);
}
}
return sb.toString();
}
private static String formatDecimal(double decimal) {
String decimals = String.valueOf(decimal);
int decIndex = decimals.indexOf(".");
int integ = Integer.valueOf(decimals.substring(0, decIndex));
int dec = Integer.valueOf(decimals.substring(decIndex + 1));
String result = foematInteger(integ) + "." + formatFractionalPart(dec);
return result;
}
private static String formatFractionalPart(int decimal) {
char[] val = String.valueOf(decimal).toCharArray();
int len = val.length;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < len; i++) {
int n = Integer.valueOf(val[i] + "");
sb.append(numArray[n]);
}
return sb.toString();
}
private static void print(Object arg0) {
System.out.println(arg0);
}
}

转载地址:http://mcesl.baihongyu.com/

你可能感兴趣的文章
工作后对单元测试学习的一点总结
查看>>
无线数据传输新纪录达到6Gbps
查看>>
细分差异化,钉钉为何寻求不同CRM厂商合作
查看>>
Linux使用fuser命令找出访问文件系统的进程
查看>>
智能家居联网通信技术谁将一统天下?
查看>>
重庆企业首创ZPLC技术物联网光环境系统
查看>>
《数值分析(原书第2版)》—— 0.1 多项式求值
查看>>
MEMS传感器市场扩容 国产化水平亟待提升
查看>>
ASP.NET Aries 入门开发教程1:框架下载与运行
查看>>
周鸿祎:网络攻击新时代开启 要提高安全意识
查看>>
关于Solaris的9个小技巧
查看>>
网络安全加速推进 高增长引基金布局
查看>>
Spring 数据库连接整理
查看>>
“南海云”及大数据服务中心项目启动
查看>>
Crypto++编译使用
查看>>
SQLite.swift —— 纯 Swift 封装的 SQLite 框架
查看>>
《深入理解Spark:核心思想与源码分析》——3.11节ContextCleaner的创建与启动
查看>>
“淘宝心选”上线!taobaoxinxuan.xin被阿里巴巴收购
查看>>
天猫黑科技秘密全公开!人脸识别、AR交互、3D物体云识别...
查看>>
《深入浅出iPhone/iPad开发(第2版)》——……因为每个人都想要一个!
查看>>