Il Luhn Check Digit Algorithm in Java
//------------------------------------------------ ---------
/ / Controlli per il numero di carta di credito valida Luhn utilizzando l'algoritmo
//------------------------------------------------ ---------
public abstract class LuhnCheck (
//--------------------------------
/ / Filtra cifre caratteri non -
//--------------------------------
private String getDigitsOnly statica (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);
)
)
ritorno digitsOnly.toString ();
)
//-------------------
/ / Eseguire Luhn verificare
//-------------------
public static boolean isValid (String carta) (
Stringa digitsOnly = getDigitsOnly (carta);
int somma = 0;
int cifra = 0;
int addend = 0;
boolean timesTwo = false;
for (int i = digitsOnly.length () - 1; i> = 0; i -) (
cifre = Integer.parseInt (digitsOnly.substring (i, i + 1));
if (timesTwo) (
addend cifre * = 2;
if (addend> 9) (
addend -= 9;
)
)
else (
addend = cifra;
)
somma + = addend;
timesTwo =! timesTwo;
)
int somma modulo = 10%;
ritorno modulo == 0;
)
//-----
/ / Test
//-----
public static void main (String [] args) (
Carta Stringa = "4408 0412 3456 7890";
boolean valido = LuhnCheck.isValid (carta);
System.out.println (carta + ":" + valida);
carta = "4408 0412 3456 7893";
= LuhnCheck.isValid valido (carta);
System.out.println (carta + ":" + valida);
carta = "4417 1234 5678 9112";
= LuhnCheck.isValid valido (carta);
System.out.println (carta + ":" + valida);
carta = "4417 1234 5678 9113";
= LuhnCheck.isValid valido (carta);
System.out.println (carta + ":" + valida);
)
)
|
Memorizza i dati Algoritmo Luhn Check in Java

