2012-01-17 158 views

回答

11

您可以使用下面的方法來驗證信用卡號碼

// ------------------- 
// Perform Luhn check 
// ------------------- 

public static boolean isCreditCardValid(String cardNumber) { 
    String digitsOnly = getDigitsOnly(cardNumber); 
    int sum = 0; 
    int digit = 0; 
    int addend = 0; 
    boolean timesTwo = false; 

    for (int i = digitsOnly.length() - 1; i >= 0; i--) { 
     digit = Integer.parseInt(digitsOnly.substring(i, i + 1)); 
     if (timesTwo) { 
      addend = digit * 2; 
      if (addend > 9) { 
       addend -= 9; 
      } 
     } else { 
      addend = digit; 
     } 
     sum += addend; 
     timesTwo = !timesTwo; 
    } 

    int modulus = sum % 10; 
    return modulus == 0; 

} 
+0

高興我的幫助 – rfsk2010 2012-01-17 13:52:29

+2

似乎是從http://onesandzeros.biz/notebook/ccvalidation.php#Source,這也定義'getDigitsOnly()'方法。 – spork 2013-10-06 14:47:07