Java实现 简体中文 与 阿拉伯数字 互转

来源:互联网 发布:微博短域名 编辑:程序博客网 时间:2024/05/21 22:39

1、阿拉伯数字转简体中文数字

public static String arabNumToSimpChin(Integer arabNum) throws Exception{if (arabNum == null) {return "";}if (arabNum == 0) {return "零";}String[] unitArray= {"","十","百","千","万","十万","百万","千万","亿","十亿","百亿","千亿","万亿"}; String[] numArray = {"零","一","二","三","四","五","六","七","八","九"};char[] charArray= String.valueOf(arabNum).toCharArray();int arrayLength = charArray.length;StringBuilder stringBuilder = new StringBuilder();for(int i = 0;i<arrayLength;i++){int num = Integer.valueOf(charArray[i] + "");boolean isZero = num == 0;String unit = unitArray[(arrayLength - 1) - i];if (isZero) {continue;}else {if(i==0){stringBuilder.append(numArray[num]);stringBuilder.append(unit);}else{if(charArray[i-1]=='0'){stringBuilder.append("零");stringBuilder.append(numArray[num]);stringBuilder.append(unit);}else{stringBuilder.append(numArray[num]);stringBuilder.append(unit);}}}}String numString=stringBuilder.toString();if(numString.length()>1){if(numString.toCharArray()[0]=='一' && numString.toCharArray()[1]=='十'){return numString.substring(1);}}return numString;}




2、简体中文数字转阿拉伯数字

public static Integer simpChinToArabNum(String numString) throws Exception{String[] unitArray= {"","十","百","千","万","十万","百万","千万","亿","十亿"}; String[] numArray = {"零","一","二","三","四","五","六","七","八","九"};if(numString.length()==1 || numString.length()==2){for(int m=0;m<numArray.length;m++){if(numString.equals(numArray[m])){return m;}}for(int n=1;n<unitArray.length;n++){if(numString.equals(unitArray[n])){return Integer.valueOf((int)Math.pow(10,n));}}}numString=numString.replaceAll("零", "");if(numString.length()==0){return 0;}Integer returnNum=0;for(int i=unitArray.length-1;i>0;i--){if(numString.indexOf(unitArray[i])==0){returnNum=returnNum+Integer.valueOf((int)Math.pow(10,i));String[] numStringArray=numString.split(unitArray[i]);if(numStringArray.length==0){return returnNum;}else{numString=numStringArray[1];}if(numString.length()==1 || numString.length()==2){for(int m=0;m<numArray.length;m++){if(numString.equals(numArray[m])){return returnNum+m;}}for(int n=1;n<unitArray.length;n++){if(numString.equals(unitArray[n])){return returnNum+Integer.valueOf((int)Math.pow(10,n));}}}}else{String[] numStringArray=numString.split(unitArray[i]);if(numStringArray.length>1){for(int j=0;j<numArray.length;j++){if(numArray[j].equals(numStringArray[0])){returnNum=returnNum+Integer.valueOf((int)(j*Math.pow(10,i)));numString=numStringArray[1];if(numString.length()==1 || numString.length()==2){for(int m=0;m<numArray.length;m++){if(numString.equals(numArray[m])){return returnNum+m;}}for(int n=1;n<unitArray.length;n++){if(numString.equals(unitArray[n])){return returnNum+Integer.valueOf((int)Math.pow(10,n));}}}else{continue;}}}}else{continue;}}}return 1/0;}






阅读全文
0 0
原创粉丝点击