O Luhn Check Digit Algorítimo em Java
//------------------------------------------------ ---------
/ / Controlos de cartão de crédito válido número usando Luhn algoritmo
//------------------------------------------------ ---------
público classe abstracta LuhnCheck (
//--------------------------------
/ / Filtre caracteres não-dígito
//--------------------------------
privado estático getDigitsOnly String (String s) (
StringBuffer digitsOnly = new StringBuffer ();
char c;
for (int i = 0; i <s.length (); i + +) (
c = s.charAt (i);
if (Character.isDigit (c)) (
digitsOnly.append (c);
)
)
retorno digitsOnly.toString ();
)
//-------------------
/ / Executar Luhn check
//-------------------
pública estático boolean isValid (String cardNumber) (
Seqüência digitsOnly = getDigitsOnly (cardNumber);
int sum = 0;
dígito int = 0;
addend int = 0;
boolean timesTwo = false;
for (int i = digitsOnly.length () - 1, i> = 0; i -) (
dígito = Integer.parseInt (digitsOnly.substring (i, i + 1));
if (timesTwo) (
addend dígito * = 2;
if (addend> 9) (
addend -= 9;
)
)
else (
addend = dígitos;
)
soma + = addend;
timesTwo =! timesTwo;
)
int modulus = soma% 10;
modulus retorno == 0;
)
//-----
/ / Teste
//-----
público estático void main (String [] args) (
Seqüência cardNumber = "4408 0412 3456 7890";
boolean valido = LuhnCheck.isValid (cardNumber);
System.out.println (cardNumber + ":" + válidos);
cardNumber = "4408 0412 3456 7893";
válido = LuhnCheck.isValid (cardNumber);
System.out.println (cardNumber + ":" + válidos);
cardNumber = "4417 1234 5678 9112";
válido = LuhnCheck.isValid (cardNumber);
System.out.println (cardNumber + ":" + válidos);
cardNumber = "4417 1234 5678 9113";
válido = LuhnCheck.isValid (cardNumber);
System.out.println (cardNumber + ":" + válidos);
)
)
|
Guardar o Luhn Check Dados Algorítimo em Java

