銀行卡校驗方法
阿新 • • 發佈:2019-01-29
注:此方法只能針對普通的16位和19位銀行卡校驗有效,對於卡號不規則的企業商戶開戶行無法校驗。
/** * 匹配銀行卡 * @param cardNo * @return */ public static boolean matchLuhn(String cardNo) { try { int[] cardNoArr = new int[cardNo.length()]; for (int i = 0; i < cardNo.length(); i++) { cardNoArr[i] = Integer.valueOf(String.valueOf(cardNo.charAt(i))); } for (int i = cardNoArr.length - 2; i >= 0; i -= 2) { cardNoArr[i] <<= 1; cardNoArr[i] = cardNoArr[i] / 10 + cardNoArr[i] % 10; } int sum = 0; for (int i = 0; i < cardNoArr.length; i++) { sum += cardNoArr[i]; } return sum % 10 == 0; } catch (Exception e) { return false; } }