Le Luhn Check Digit algorithme en Java
//------------------------------------------------ ---------
/ / Le contrôle de numéro de carte de crédit en utilisant l'algorithme Luhn
//------------------------------------------------ ---------
public abstract class LuhnCheck (
//--------------------------------
/ / Filtre sur les caractères non-numériques
//--------------------------------
private static String 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);
)
)
retour digitsOnly.toString ();
)
//-------------------
/ / Perform Luhn vérifier
//-------------------
public static boolean isValid (String Numéro de la carte) (
DigitsOnly String = getDigitsOnly (Numéro de la carte);
int somme = 0;
int chiffre = 0;
addend int = 0;
boolean timesTwo = false;
for (int i = digitsOnly.length () - 1; i> = 0; i -) (
digit = Integer.parseInt (digitsOnly.substring (i, i + 1));
if (timesTwo) (
addend = chiffres * 2;
if (addend> 9) (
addend -= 9;
)
)
else (
addend = chiffre;
)
somme + = addend;
timesTwo =! timesTwo;
)
int module = somme% 10;
retour module == 0;
)
//-----
/ / Test
//-----
public static void main (String [] args) (
Numéro de la carte String = "4408 0412 3456 7890";
boolean valid = LuhnCheck.isValid (Numéro de la carte);
System.out.println (+ Numéro de la carte ":" + valide);
Numéro de la carte = "4408 0412 3456 7893";
valid = LuhnCheck.isValid (Numéro de la carte);
System.out.println (+ Numéro de la carte ":" + valide);
Numéro de la carte = "4417 1234 5678 9112";
valid = LuhnCheck.isValid (Numéro de la carte);
System.out.println (+ Numéro de la carte ":" + valide);
Numéro de la carte = "4417 1234 5678 9113";
valid = LuhnCheck.isValid (Numéro de la carte);
System.out.println (+ Numéro de la carte ":" + valide);
)
)
|
Bookmark la Luhn Check Data Algorithme en Java

