Neo's Blog

首頁 相本 討論 書籤

分類目錄
本站日誌 (51)
碎碎唸啦 (173)
網站架設 (84)
程式設計 (161)
軟體使用 (69)
電子商務 (126)
經營奇想 (48)
基金理財 (11)
聰明消費 (87)
電影心得 (47)
開放原碼 (16)
工作記錄 (2)
毛毛小記 (9)
就是不同 (2)




歷史資料
 




April 13, 2005
[Java] 身份證號碼檢查

今天人在外面臨時要寫,時間又不夠,正好在 javaworld 有,也順便分享給大家。

http://www.javaworld.com.tw/jute/post/view?bid=35&id=51760&sty=3&age=0&tpg=1&ppg=1#51760

private boolean isIdNumber(String ID) {    
	boolean rule = false;    
	if (ID.length() == 10) {      
		ID = ID.toUpperCase();      
		byte s[] = ID.getBytes();      
		if (s[0] >= 65 && s[0] <= 90) {        
		int[] c = new int[11];        
		int a[] = {10, 11, 12, 13, 14, 15, 16, 17, 34, 18, 19, 20, 21, 22, 35, 23, 24,            25,26, 27, 28, 29, 32, 30, 31, 33};        
			c[0] = a[ (s[0]) - 65] / 10;        
			c[1] = a[ (s[0]) - 65] % 10;        
			for (int i = 1; i <= 9; i++) {          
				c[i + 1] = s[i] - 48;        
			}        
			int count = c[0];        
			for (int i = 1; i <= 9; i++) {          
				count += c[i] * (10 - i);       
			}        
			if ( ( (count % 10) + c[10]) == 10) {          
				rule = true;        
			}      
		}    
	}    
	return (rule);  
}


A=65(ASCII)
Z=90(ASCII)

A=10 台北市 J=18 新竹縣 S=26 高雄縣
B=11 台中市 K=19 苗栗縣 T=27 屏東縣
C=12 基隆市 L=20 台中縣 U=28 花蓮縣
D=13 台南市 M=21 南投縣 V=29 台東縣
E=14 高雄市 N=22 彰化縣 * W=32 金門縣
F=15 台北縣 * O=35 新竹市 X=30 澎湖縣
G=16 宜蘭縣 P=23 雲林縣 Y=31 陽明山
H=17 桃園縣 Q=24 嘉義縣 * Z=33 連江縣
* I=34 嘉義市 R=25 台南縣

 
由 Neo 發表於 April 13, 2005 08:27 PM 收進你的MyShare個人書籤  


Copyright 2005 Neo's Blog All rights reserved.