Java代码数字转中文

package datiqi.com.dtq.datiqi_teacher.autils;

import android.util.Log;

/**
* 数字 转换
*/
public class DigitalConversion {

private static String nums[] = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};

private static String pos_units[] = {"", "十", "百", "千"};

private static String weight_units[] = {"", "万", "亿"};

/**
* 数字转汉字【新】
*
* @param num
* @return
*/
public static String numberToChinese(int num) {
if (num == 0) {
return "零";
}

int weigth = 0;//节权位
String chinese = "";
String chinese_section = "";
boolean setZero = false;//下一小节是否需要零,第一次没有上一小节所以为false
while (num > 0) {
int section = num % 10000;//得到最后面的小节
if (setZero) {//判断上一小节的千位是否为零,是就设置零
chinese = nums[0] + chinese;
}
chinese_section = sectionTrans(section);
if (section != 0) {//判断是都加节权位
chinese_section = chinese_section + weight_units[weigth];
}
chinese = chinese_section + chinese;
chinese_section = "";
Log.d("TAG", chinese_section);

setZero = (section < 1000) && (section > 0);
num = num / 10000;
weigth++;
}
if ((chinese.length() == 2 || (chinese.length() == 3)) && chinese.contains("一十")) {
chinese = chinese.substring(1, chinese.length());
}
if (chinese.indexOf("一十") == 0) {
chinese = chinese.replaceFirst("一十", "十");
}

return chinese;
}

/**
* 将每段数字转汉子
*
* @param section
* @return
*/
public static String sectionTrans(int section) {
StringBuilder section_chinese = new StringBuilder();
int pos = 0;//小节内部权位的计数器
boolean zero = true;//小节内部的置零判断,每一个小节只能有一个零。
while (section > 0) {
int v = section % 10;//得到最后一个数
if (v == 0) {
if (!zero) {
zero = true;//需要补零的操作,确保对连续多个零只是输出一个
section_chinese.insert(0, nums[0]);
}
} else {
zero = false;//有非零数字就把置
section_chinese.insert(0, pos_units[pos]);
section_chinese.insert(0, nums[v]);
}
pos++;
section = section / 10;
}
return section_chinese.toString();
}
}

原文地址:https://www.cnblogs.com/lwj1022/p/10000998.html

时间: 2024-10-07 19:55:44

Java代码数字转中文的相关文章

JAVA代码-数字证书公私钥生成-公钥cer ,私钥jks, pfx格式

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.math.BigInteger; import java.security.InvalidKeyException; import java.security.Key; import java.

java判断数字或中文或字母

1.判断字符串是否仅为数字: 1>用JAVA自带的函数 public static boolean isNumeric(String str){   for (int i = str.length();--i>=0;){       if (!Character.isDigit(str.charAt(i))){     return false;    }   }   return true;  } 2>用正则表达式 public static boolean isNumeric(Str

如何用JAVA代码签发数字证书

用JAVA签发数字证书 打开cmd 1.输入D: 2.输入cd keys 3.输入命令查看创建的密钥库的证书列表 keytool -list -v -keystore mykey.keystore -storepass 123456 4. 之前导出过server.cer文件,把这个文件安装到操作系统,过程默认. 5.创建一个密钥对,和之前一样,输入如下命令: --创建密钥对 keytool -genkey -dname "CN=tmp, OU=NC, O=Shanghai University,

中文繁体和简体转换 (Java代码)

String jianti="皑蔼碍爱翱袄奥坝罢摆败颁办绊帮绑镑谤剥饱宝报鲍辈贝钡狈备惫绷笔毕毙币闭边编贬变辩辫标鳖别瘪濒滨宾摈饼并拨钵铂驳卜补财参蚕残惭惨灿苍舱仓沧厕侧册测层诧搀掺蝉馋谗缠铲产阐颤场尝长偿肠厂畅钞车彻尘沉陈衬撑称惩诚骋痴迟驰耻齿炽冲虫宠畴踌筹绸丑橱厨锄雏础储触处传疮闯创锤纯绰辞词赐聪葱囱从丛凑蹿窜错达带贷担单郸掸胆惮诞弹当挡党荡档捣岛祷导盗灯邓敌涤递缔颠点垫电淀钓调迭谍叠钉顶锭订丢东动栋冻斗犊独读赌镀锻断缎兑队对吨顿钝夺堕鹅额讹恶饿儿尔饵贰发罚阀珐矾钒烦范贩饭访纺飞诽废费纷坟奋

Java正则表达式过滤出字母、数字和中文

原文:http://blog.csdn.net/k21325/article/details/54090066 1.Java中过滤出字母.数字和中文的正则表达式 (1)过滤出字母的正则表达式 [html] view plain copy [^(A-Za-z)] (2) 过滤出 数字 的正则表达式 [html] view plain copy [^(0-9)] (3) 过滤出 中文 的正则表达式 [html] view plain copy [^(\\u4e00-\\u9fa5)] (4) 过滤出

分享一个很实用的java代码,可以将以逗号分隔的数字以从大到小的方式排序后返回

原文:分享一个很实用的java代码,可以将以逗号分隔的数字以从大到小的方式排序后返回 源代码下载地址:http://www.zuidaima.com/share/1550463693032448.htm 对于web开发中,多个id的排序很实用,有需要的牛人可以下载. package com.zuidaima.math; import java.util.Arrays; /** *@author www.zuidaima.com **/ public class SortIDString { pu

java代码分析及分析工具

java代码分析及分析工具 一个项目从搭建开始,开发的初期往往思路比较清晰,代码也比较清晰.随着时间的推移,业务越来越复杂.代码也就面临着耦合,冗余,甚至杂乱,到最后谁都不敢碰. 作为一个互联网电子商务网站的业务支撑系统,业务复杂不言而喻.从09年开始一直沿用到现在,中间代码经过了多少人的手,留下了多少的坑,已经记不清楚了,谁也说不清了. 代码的维护成本越来越高.代码已经急需做调整和改善.最近项目组专门设立了一个小组,利用业余时间做代码分析的工作,目标对核心代码进行分析并进行设计重构. 代码分析

英文,数字和中文混合的彩色验证码实现

功能描述:英文,数字和中文混合的彩色验证码是一种比较安全的验证码,虽然这样的验证码会给用户输入带来不便,但对于保障用户账号的安全还是值得的.本实例介绍实现英文,数字和中文混合验证码的彩色验证码的方法,输入用户名和密码后,还需要输入正确的验证码才可以正常登陆.由于验证码是随机生成的,可能会产生看不清楚的验证码,因此添加了重新生成验证码的功能,用户单击"看不清?换一个"超级链接和图片本身,可以重新生成一个验证码. 1:编写生成英文,数字和中文混合的彩色验证码的Servlet实现类 要生成英

Java代码规范文档

NOTE:以下部分为一个简要的编码规范,更多规范请参考 ORACLE 官方文档. 地址:http://www.oracle.com/technetwork/java/codeconventions-150003.pdf 另外,请使用 UTF-8 格式来查看代码,避免出现中文乱码. 至于注释应该使用中文还是英文,请自己行决定,根据公司或项目的要求而定,推荐使用英文. 1. 整理代码 1.1. Java 代码中不允许出现在警告,无法消除的警告要用 @SuppressWarnings. 1.2. 去掉