El Algoritmo Luhn Dígito de Control en Java
//------------------------------------------------ ---------
/ / El control de número de la tarjeta de crédito válida Luhn utilizando el algoritmo
//------------------------------------------------ ---------
público clase abstracta LuhnCheck (
//--------------------------------
/ / Filtrar caracteres no dígitos
//--------------------------------
privado de cuerda estática getDigitsOnly (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);
)
)
volver digitsOnly.toString ();
)
//-------------------
/ / Realizar la verificación Luhn
//-------------------
public static boolean isValid (String cardNumber) (
DigitsOnly cadena = getDigitsOnly (cardNumber);
int suma = 0;
int dígitos = 0;
int addend = 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ígitos * = 2;
if (addend> 9) (
addend -= 9;
)
)
else (
addend = dígitos;
)
suma + = addend;
timesTwo =! timesTwo;
)
int módulo = suma% 10;
módulo de retorno == 0;
)
//-----
/ / Test
//-----
public static void main (String [] args) (
CardNumber cadena = "4408 0412 3456 7890";
booleano válido 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 los datos Luhn Compruebe Algoritmo en Java

