- 積分
- 1235
- 要地威望
- 225
- 通用貨幣
- 25
- 要地貢獻
- 200
|
Java 身分證字號驗證器
本帖最後由 零售商 於 2011-8-24 22:27 編輯
今天上課的實做,不包含例外處理,輸入的身份證字號第一個字要是大寫 - import java.util.*;
- public class Test111 {
- public static void main(String[] args) {
- Scanner scan = new Scanner(System.in);
- ArrayList al = new ArrayList();
- TreeMap tm = new TreeMap();
- System.out.println("請輸入身份證字號");
- String s1 = scan.next();
- for(int i = 65 ; i < 91 ; i++)
- al.add("" + (char)i);
- al.remove("W");
- al.remove("Z");
- al.remove("I");
- al.remove("O");
- al.add("W");
- al.add("Z");
- al.add("I");
- al.add("O");
- for(int i = 0 ; i < 26 ; i++)
- tm.put(al.get(i),i + 10);
- s1 = s1.replace("" + s1.charAt(0) , "" + tm.get("" + s1.charAt(0)));
- int a = Integer.valueOf("" + s1.charAt(0));
- for(int i = 1 ; i <= s1.length() - 2 ; i++){
- a += Integer.valueOf("" + s1.charAt(i)) * (s1.length() - i - 1);
- }
- a = 10 - a % 10;
- if(a == Integer.valueOf("" + s1.charAt(10)))
- System.out.println("身分證字號正確");
- else
- System.out.println("身分證字號錯誤");
- }
- }
複製代碼 |
|