1. 程式人生 > 實用技巧 >《《《中文的年份更改為阿拉伯數字年份

《《《中文的年份更改為阿拉伯數字年份

轉載地址:http://yuncode.net/code/c_5063bcc64c17f59

關於中文年份轉阿拉伯的比較少,找的一個整理一下

  1 package com.ly.changenum;
  2  
  3 /**
  4 * 把中文數字轉換為阿拉伯數字,把阿拉伯數字轉換為中文數字
  5 *
  6 * @author zhaigy
  7 * @date 2010-2-20
  8 */
  9 final public class Changenum {
 10              
 11      
 12         public static void main(String[] args) {
13 14 String a =cnNumToInt("二零〇一年五月一日"); 15 System.err.println(a); 16 } 17 18 static public String cnNumToInt(String s) { 19 20 String year = s.substring(0,s.indexOf("年")); 21 String month = s.substring(s.indexOf("年")+1,s.indexOf("月"));
22 String day = s.substring(s.indexOf("月")+1,s.indexOf("日")); 23 24 String year_int =changgedate(year); 25 String month_int =changgedate(month); 26 String day_int = changgedate(day); 27 28 return ""+year_int+month_int+day_int; 29 } 30 31 public static String changgedate(String strs){
32 String result=""; 33 boolean flag =false; 34 if(strs.startsWith("十")){ 35 flag=true; 36 } 37 int size =strs.length(); 38 39 40 41 for(int i =1, j=0;i<=strs.length();i++,j++){ 42 String str = strs.substring(j,i); 43 switch (str) { 44 case "〇": 45 result+=0; 46 break; 47 case "零": 48 result+=0; 49 break; 50 case "一": 51 result+=1; 52 break; 53 case "二": 54 result+=2; 55 break; 56 case "三": 57 result+=3; 58 break; 59 case "四": 60 result+=4; 61 break; 62 case "五": 63 result+=5; 64 break; 65 case "六": 66 result+=6; 67 break; 68 case "七": 69 result+=7; 70 break; 71 case "八": 72 result+=8; 73 break; 74 case "九": 75 result+=9; 76 break; 77 case "十": 78 if(flag&&size==1){ 79 result+=10; 80 break; 81 } 82 if(!flag&&size==2){ 83 result+=0; 84 break; 85 } 86 if(size==3){ 87 break; 88 } 89 else{ 90 result+=1; 91 break; 92 } 93 94 } 95 } 96 if(!flag&&size==1){ 97 return "0"+Integer.parseInt(result); 98 } 99 else 100 return Integer.parseInt(result)+""; 101 } 102 103 104 }

執行結果