利用陣列與map的資料結構進行中文數字與數字之間的互相轉換
public class numberutil
private static final char cn_num = ;
private static final char cn_unit = ;
private static final string cn_negative = "負";
private static final string cn_point = "點";
private static final string cn_unit_symbol = ;
private static mapnum_map = null;
static
/*** @param bigdecimalnum
* @return 中文數字
*/public static string bigdecimalchinesenum(bigdecimal bigdecimalnum)
stringbuffer sb = new stringbuffer();
//將小數點後面的零給去除
string numstr = bigdecimalnum.abs().striptrailingzeros().toplainstring();
string split = numstr.split("\\.");
string integerstr = intchinesenum(integer.parseint(split[0]));
//如果傳入的數有小數,則進行切割,將整數與小數部分分離
if (split.length == 2)
}//判斷傳入數字為正數還是負數
int signum = bigdecimalnum.signum();
if (signum == -1)
return sb.tostring();
}/** *
* int 轉 中文數字
* 支援到int最大值
* @param intnum 要轉換的整型數
* @return 中文數字
* */
public static string intchinesenum(int intnum )
char chats = (intnum + "").tochararray();
int index = chats.length-1;
for (int i = 0; i < chats.length; i++)
return sb.tostring().trim()
.replaceall("零[千百十]", "零")
.replaceall("零+萬", "萬")
.replaceall("零+億", "億")
.replaceall("億萬", "億零")
.replaceall("零+", "零")
.replaceall("零$", "");
}/**
* 中文數字 轉 int
* @param num 轉換的中文數字
* @return int
*/public static int intnumber(string num)
/*** 中文數字 轉 bigdecimal
* @param num 轉換的中文數字
* @return bigdecimal
*/public static bigdecimal bigdecimalnumber(string num)
private static string core(string num)
char chars = num.tochararray();
for (character achar : chars)
return sb.tostring();
}// public static void main(string args)
}
數字轉中文數字大寫
做財務報表時常需要將金額轉化中文數字大寫,有點坑。author qzc createdate 2015年6月22日 下午6 08 20 version 1 類 介面 主要功能 public class numbertocn 漢語中貨幣單位大寫,這樣的設計類似於佔位符 private static f...
大寫中文數字 財務
壹 貳 叄 肆 伍 陸 柒 捌 玖 拾 佰 仟 萬 億 元 圓 角 分 零 整。這是大家經常要填寫的大寫數字,問什麼要用大寫數字呢?想必很多人都不是很清楚!先看看以下兩個有關大寫數字的 1 數碼與大 小寫數字的對照表 數碼 小寫數字 大寫數字 0 零 1 一 壹 2 二 貳 3 三 叄 參 4 四 ...
iOS 中文數字排序
之前做通訊錄聯絡人的時候用到bmchinesesort,能分割成兩個陣列,乙個是英文本的,乙個是英文本母下的所有物件陣列 但是它對數字並不起作用,並沒有從小到大排序,現在專案,我並不需要英文本母下的陣列,增加數字排序 從小到大 解決方案如下 按拼音排序 nsinteger carnamesort i...