public class BankCardUtil {
/**
* 检查银行卡号是否有效
*
* @param cardNumber 要检查的卡号
* @return true 如果卡号有效
*/
public static boolean isValidCardNumber(String cardNumber) {
if (cardNumber == null || !cardNumber.matches("\\d{16,19}")) {
return false;
}
int sum = 0;
boolean doubleDigit = false;
for (int i = cardNumber.length() - 1; i >= 0; i--) {
int digit = cardNumber.charAt(i) - '0';
if (doubleDigit) {
digit *= 2;
if (digit > 9) {
digit -= 9;
}
}
sum += digit;
doubleDigit = !doubleDigit;
}
return sum % 10 == 0;
}
}