汉字转换为阿拉伯数字,一百三十四亿一千零二十三万六千六百零九

来源:互联网 发布:c语言基础入门书籍推荐 编辑:程序博客网 时间:2024/06/10 09:50
package number_converter;//汉字转换为阿拉伯数字//一百三十四亿一千零二十三万六千六百零九//最终应该转为这样:13410236609public class MyConverter2 {public static void main(String[] args) {long d=convert("一百三十四亿一千零二十三万六千六百零九");System.out.println(d);}public static long convert(String s){String [] s1=s.split("亿");long num=restore(s1[0])  *100000000L;String [] s2=s1[1].split("万");num=restore(s2[0])  *10000L +num;num=num+restore(s2[1]);return num;}public static int  convertNumber(char c){int num=0;switch(c){case '零': num= 0;  break;case '一': num= 1;  break; case '二': num= 2;  break; case '三': num= 3;  break;case '四': num= 4;  break;case '五': num= 5;  break;case '六': num= 6;  break;case '七': num= 7;  break;case '八': num= 8;  break;case '九': num= 9;  break;}return num;}//  比如  一千三百五十1  还原为1351public static int restore(String s){char [] array=s.toCharArray();int num=0;for (int i=0;  i<array.length-1;  i++){if (array[i] != '零'  &&  array[i+1]=='千'  ){num=convertNumber( array[i] )*1000;}else if (array[i] != '零'  &&  array[i+1]=='百'  ){num=num + convertNumber( array[i] )*100;}else if (array[i] != '零'  &&  array[i+1]=='十'  ){num=num + convertNumber( array[i] )*10;}}return num+convertNumber(array[array.length-1]);}}

0 0
原创粉丝点击