首页 > 代码库 > 将中文数字转为数字
将中文数字转为数字
1 /** 2 * 根据输入的中文转为数字 3 * @param String chineseNumber 4 * @return int 5 */ 6 public static int chineseNumber2Int(String chineseNumber){ 7 String state=chineseNumber; 8 int result=0; 9 10 if(state=="" || state==null){ 11 try { 12 throw new Exception("输入不合法!"); 13 } catch (Exception e) { 14 // TODO Auto-generated catch block 15 e.printStackTrace(); 16 } 17 } 18 else if(state.contains("千")||state.contains("百") || state.contains("十")){ 19 int temp = 1;//存放一个单位的数字如:十万 20 int flag = 0;//判断是否有中文数字的单位 21 char[] cnArr = new char[]{‘一‘,‘二‘,‘三‘,‘四‘,‘五‘,‘六‘,‘七‘,‘八‘,‘九‘}; 22 char[] chArr = new char[]{‘十‘,‘百‘,‘千‘,‘万‘,‘亿‘}; 23 //遍历输入的中文 24 for (int i = 0; i < state.length(); i++) { 25 boolean isCHUnit = true;//判断是否是chArr 26 char c = state.charAt(i);//字符 27 //判断是否数字 28 for (int j = 0; j < cnArr.length; j++) {//非单位,即数字 29 if (c == cnArr[j]) { 30 if(0 != flag){ 31 //添加下一个单位之前,先把上一个单位值添加到结果中 32 result += temp; 33 //临时值重置 34 temp = 1; 35 flag = 0; 36 } 37 // 下标+1,就是对应的值 38 temp = j + 1; 39 isCHUnit = false; 40 break; 41 } 42 } 43 //判断是否单位 44 if(isCHUnit){//单位{‘十‘,‘百‘,‘千‘,‘万‘,‘亿‘} 45 for (int j = 0; j < chArr.length; j++) { 46 if (c == chArr[j]) { 47 switch (j) { 48 case 0: 49 temp *= 10; 50 break; 51 case 1: 52 temp *= 100; 53 break; 54 case 2: 55 temp *= 1000; 56 break; 57 case 3: 58 temp *= 10000; 59 break; 60 case 4: 61 temp *= 100000000; 62 break; 63 default: 64 break; 65 } 66 flag++; 67 } 68 } 69 } 70 if (i == state.length() - 1) {//遍历到最后一个字符 71 result += temp; 72 } 73 } 74 } 75 else{ 76 int temp=1; 77 String tempS=""; 78 char[] cnArr = new char[]{‘一‘,‘二‘,‘三‘,‘四‘,‘五‘,‘六‘,‘七‘,‘八‘,‘九‘}; 79 for (int i = 0; i < state.length(); i++) { 80 char c = state.charAt(i);//字符 81 if(c==‘零‘){ 82 temp=0; 83 } 84 else{ 85 for (int j = 0; j < cnArr.length; j++) {//非单位,即数字 86 if (c == cnArr[j]) { 87 temp = j + 1; 88 break; 89 } 90 } 91 } 92 93 tempS+=temp; 94 } 95 96 result=Integer.parseInt(tempS); 97 } 98 System.out.println(result); 99 return result; 100 }
将中文数字转为数字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。