本篇內容主要講解“string實現數字轉中文的方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“string實現數字轉中文的方法”吧!
成都創(chuàng)新互聯(lián)是一家集網站建設,簡陽企業(yè)網站建設,簡陽品牌網站建設,網站定制,簡陽網站建設報價,網絡營銷,網絡優(yōu)化,簡陽網站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網站。
public static final String EMPTY = "";
public static final String ZERO = "零";
public static final String ONE = "壹";
public static final String TWO = "貳";
public static final String THREE = "叁";
public static final String FOUR = "肆";
public static final String FIVE = "伍";
public static final String SIX = "陸";
public static final String SEVEN = "柒";
public static final String EIGHT = "捌";
public static final String NINE = "玖";
public static final String TEN = "拾";
public static final String HUNDRED = "佰";
public static final String THOUSAND = "仟";
public static final String TEN_THOUSAND = "萬";
public static final String HUNDRED_MILLION = "億";
public static final String YUAN = "元";
public static final String JIAO = "角";
public static final String FEN = "分";
public static final String DOT = ".";
private static MoneyFormatTest formattest = null;//定義一個靜態(tài)的MoneyFormatTest類讓它空
//建了兩個HashMap數的散列表。
private HashMap chineseNumberMap = new HashMap();
private HashMap chineseMoneyPattern = new HashMap();
/*NumberFormat 是所有數值格式的抽象基類。 該類提供了格式化和分析數值的接口。 NumberFormat 也提供了確定哪個語言環(huán)境具有數值格式以及它們名字的方法。
NumberFormat 幫助格式化和分析任何語言環(huán)境的數值。 代碼可以完全不依賴于語言環(huán)境中關于十進制小數點、千進位分隔符的約定,甚至關于使用特別的十進制數字或數值格式是否為小數的約定。
*/
private NumberFormat numberFormat = NumberFormat.getInstance();//為了格式化當前 Locale 的數值,使用下列靜態(tài)工廠方法之一。
//構造方法
private MoneyFormatTest() {
numberFormat.setMaximumFractionDigits(4);
numberFormat.setMinimumFractionDigits(2);
numberFormat.setGroupingUsed(false);
//在該散列表中映射指定的 鍵 到指定的 值 。
chineseNumberMap.put("0", ZERO);
chineseNumberMap.put("1", ONE);
chineseNumberMap.put("2", TWO);
chineseNumberMap.put("3", THREE);
chineseNumberMap.put("4", FOUR);
chineseNumberMap.put("5", FIVE);
chineseNumberMap.put("6", SIX);
chineseNumberMap.put("7", SEVEN);
chineseNumberMap.put("8", EIGHT);
chineseNumberMap.put("9", NINE);
chineseNumberMap.put(DOT, DOT);
chineseMoneyPattern.put("1", TEN);
chineseMoneyPattern.put("2", HUNDRED);
chineseMoneyPattern.put("3", THOUSAND);
chineseMoneyPattern.put("4", TEN_THOUSAND);
chineseMoneyPattern.put("5", TEN);
chineseMoneyPattern.put("6", HUNDRED);
chineseMoneyPattern.put("7", THOUSAND);
chineseMoneyPattern.put("8", HUNDRED_MILLION);
}
//如果是formatter等于空,也就是如果是第一次載入的就實例化SimpleMoneyFormat類,返回SimpleMoneyFormat的一個對象。
public static MoneyFormatTest getInstance() {
if (formattest == null)
formattest= new MoneyFormatTest();
return formattest;
}
//重載format方法格式的規(guī)范傳入不同類型的參數,返回String類型
public String format(String moneyStr) {
checkPrecision(moneyStr);
String result;
result = convertToChineseNumber(moneyStr);
result = addUnitsToChineseMoneyString(result);
return result;
}
public String format(double moneyDouble) {
return format(numberFormat.format(moneyDouble));
}
public String format(int moneyInt) {
return format(numberFormat.format(moneyInt));
}
public String format(long moneyLong) {
return format(numberFormat.format(moneyLong));
}
public String format(Number moneyNum) {
return format(numberFormat.format(moneyNum));
}
private String convertToChineseNumber(String moneyStr) {
String result;
StringBuffer cMoneyStringBuffer = new StringBuffer();//定義字符串緩沖區(qū)實現可變字符序列
for (int i = 0; i < moneyStr.length(); i++) {
cMoneyStringBuffer.append(chineseNumberMap.get(moneyStr.substring(i, i + 1)));//添加字符串到字符串緩沖區(qū)。
}
//拾佰仟萬億等都是漢字里面才有的單位,加上它們
int indexOfDot = cMoneyStringBuffer.indexOf(DOT);
int moneyPatternCursor = 1;
for (int i = indexOfDot - 1; i > 0; i--) {
cMoneyStringBuffer.insert(i, chineseMoneyPattern.get(EMPTY + moneyPatternCursor));
moneyPatternCursor = moneyPatternCursor == 8 ? 1 : moneyPatternCursor + 1;
}
到此,相信大家對“string實現數字轉中文的方法”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!