數字轉中文數字與中文數字轉數字

2021-10-09 01:31:19 字數 2021 閱讀 3921

利用陣列與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...