2012-01-17 4 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

+2

이었다 다행 이는 또한, http://onesandzeros.biz/notebook/ccvalidation.php#Source로부터 것으로 보인다 신용 카드 번호를 검증하기 위해 다음과 같은 방법을 사용할 수 있습니다 'getDigitsOnly()'메서드를 정의합니다. – spork