Java通过Luhn算法验证信用卡卡号是否有效的代码

将开发过程中比较常用的代码片段做个珍藏,如下代码内容是关于Java通过Luhn算法验证信用卡卡号是否有效的代码,应该是对码农有一些用处。

public class Luhn {
public static void main(String[] args) {
System.out.println(luhnTest(“49927398716”));
System.out.println(luhnTest(“49927398717”));
System.out.println(luhnTest(“1234567812345678”));
System.out.println(luhnTest(“1234567812345670”));
}

public static boolean luhnTest(String number){
    int s1 = 0, s2 = 0;
    String reverse = new StringBuffer(number).reverse().toString();
    for(int i = 0 ;i < reverse.length();i++){
        int digit = Character.digit(reverse.charAt(i), 10);
            s1 += digit;
            if(digit >= 5){
                s2 -= 9;
            }
        }
    }
    return (s1 + s2) % 10 == 0;
}

}

运行上面的代码,执行结果如下

true
false
false
true

你可能感兴趣的:(Java通过Luhn算法验证信用卡卡号是否有效的代码)