JAVA LUHN

http://stackoverflow.com/questions/26383926/luhn-algorithm-java

 1 static boolean luhn(String pnr){
 2     // this only works if you are certain all input will be at least 10 characters
 3     int extraChars = pnr.length() - 10;
 4     if (extraChars < 0) {
 5       throw new IllegalArgumentException("Number length must be at least 10 characters!");
 6     }
 7     pnr = pnr.substring(extraChars, 10 + extraChars);
 8     int sum = 0;
 9     for (int i = 0; i < pnr.length(); i++){
10       char tmp = pnr.charAt(i);
11       int num = tmp - '0';
12       int product;
13       if (i % 2 != 0){
14         product = num * 1;
15       }
16       else{
17         product = num * 2;
18       }
19       if (product > 9)
20         product -= 9;
21       sum+= product;              
22     }
23     return (sum % 10 == 0);
24   }
25 
26   private static void printMessage(boolean valid) {
27     if (valid){
28       System.out.print("Valid!\r");
29     }
30     else{
31       System.out.print("Invalid!");
32     }
33   }
34 }

 

static private boolean checkDeviceIDVal(String deviceid)
    {
        if(deviceid == null)
        {
            Log.e(TAG, "device id is null");
            return false;
        }
        else
        {
            int s1 = 0, s2 = 0;
            String reverse = new StringBuffer(deviceid).reverse().toString();
            for(int i = 0 ;i < reverse.length();i++)
            {
                int digit = Character.digit(reverse.charAt(i), 10);
                if(i % 2 == 0)
                {
                    //this is for odd digits, they are 1-indexed in the algorithm
                    s1 += digit;
                }
                else
                {
                    //add 2 * digit for 0-4, add 2 * digit - 9 for 5-9
                    s2 += 2 * digit;
                    if(digit >= 5)
                    {
                        s2 -= 9;
                    }
                }
            }
            return (s1 + s2) % 10 == 0;
        }
    }

 

 
posted on 2015-02-04 14:41  kelisi_king  阅读(697)  评论(0编辑  收藏  举报