阿拉伯数字转中文(汉字)数字
生活随笔
收集整理的這篇文章主要介紹了
阿拉伯数字转中文(汉字)数字
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
/**
* 數(shù)字工具類(lèi)型
* @author rubekid
*
*/
public class NumberUtils {
private final static String[] GROUP_UNITS = {"", "萬(wàn)", "億", "兆"};
private final static String[] BASE_UNITS = { "", "十", "百", "千" };
private final static char[] SIMPLIFIED_NUMBERIC = { '零', '一', '二', '三', '四', '五', '六', '七', '八', '九' };
private final static char[] TRADITIONAL_NUMBERIC = { '零', '壹', '貳', '叁', '肆', '伍', '陸', '柒', '捌', '玖' };
/**
* 轉(zhuǎn)為中文數(shù)字
* @param number 數(shù)值
* @param isTraditional 是否轉(zhuǎn)為繁體
* @return
*/
public static String toChinese(long number, boolean isTraditional){
char[] numberic = isTraditional ? TRADITIONAL_NUMBERIC : SIMPLIFIED_NUMBERIC;
if(number==0){//判斷是否為0
return String.valueOf(numberic[0]);
}
String str = String.valueOf(number);
char[] numbers = str.toCharArray();
int len = str.length();
//統(tǒng)計(jì)連續(xù)出現(xiàn)的0
int zeroCount = 0;
StringBuffer stringBuffer = new StringBuffer();
for(int i = 0; i<len ;i++){
int value = Integer.parseInt(String.valueOf(numbers[i]));
int index = len - i - 1;
//在分組中的下標(biāo)
int _index = index % 4;
if(value == 0){
zeroCount++;
if((_index == 0 && zeroCount < 4 ) || (index % 8 == 0 && zeroCount < 8)){
stringBuffer.append(getGroupUnit(index));
zeroCount = 0;
}
}
else{
if(zeroCount > 0){
stringBuffer.append(numberic[0]);
}
if(_index == 0){
stringBuffer.append(numberic[value] + BASE_UNITS[_index] + getGroupUnit(index));
zeroCount = 0;
}
else{
//調(diào)整以“一十”開(kāi)頭的不需要出現(xiàn)“一” 如:100000 讀“十萬(wàn)”而不是“一十萬(wàn)”
if(_index == 1 && i==0 && value== 1){
stringBuffer.append(BASE_UNITS[_index]);
}
else{
stringBuffer.append(numberic[value] + BASE_UNITS[_index]);
}
}
zeroCount = 0;
}
}
return stringBuffer.toString();
}
/**
* 轉(zhuǎn)為中文數(shù)字
* @param number 數(shù)值
* @return
*/
public static String toChinese(long number){
return toChinese(number, false);
}
/**
* 轉(zhuǎn)為中文數(shù)字
* @param number 數(shù)值
* @param isTraditional 是否轉(zhuǎn)為繁體
*/
public static String toChinese(int number, boolean isTraditional){
return toChinese((long)number, isTraditional);
}
/**
* 轉(zhuǎn)為中文數(shù)字
* @param number 數(shù)值
*/
public static String toChinese(int number){
return toChinese(number, false);
}
/**
* 獲取分組單位
* @param index
* @return
*/
private static String getGroupUnit(int index){
String groupUnit = GROUP_UNITS[(index / 4) % 2];
if(index % 8 == 0 && index > 0){
groupUnit += GROUP_UNITS[(index / 8) +1];
}
return groupUnit;
}
}
總結(jié)
以上是生活随笔為你收集整理的阿拉伯数字转中文(汉字)数字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 宝宝脾胃不好七大表现有哪些
- 下一篇: 【Oracle】【日期、时间】 date