Η Luhn Check Digit Algorithm σε Java
//------------------------------------------------ ---------
/ / Έλεγχος για έγκυρο αριθμό πιστωτικής κάρτας, με τη χρήση αλγορίθμου Luhn
//------------------------------------------------ ---------
αφηρημένη δημόσια τάξη LuhnCheck (
//--------------------------------
/ / Φιλτράρισμα μη ψηφίο χαρακτήρες
//--------------------------------
ιδιωτική στατική getDigitsOnly Συμβολοσειρά (String s) (
StringBuffer digitsOnly = new StringBuffer ()?
char γ?
για (int i = 0? i <s.length ()? i + +) (
γ = s.charAt (i)?
εάν (Character.isDigit (γ)) (
digitsOnly.append (γ)?
)
)
επιστροφή digitsOnly.toString ()?
)
//-------------------
/ / Perform Luhn έλεγχο
//-------------------
δημόσια στατική boolean isValid (String cardNumber) (
String digitsOnly = getDigitsOnly (cardNumber)?
int άθροισμα = 0?
int ψηφίο = 0?
addend int = 0?
boolean timesTwo = false?
για (int i = digitsOnly.length () - 1? i> = 0? i -) (
ψηφίο = Integer.parseInt (digitsOnly.substring (i, i + 1))?
εάν (timesTwo) (
addend = ψηφίο * 2?
εάν (addend> 9) (
addend -= 9?
)
)
αλλιώς (
addend ψηφίο =?
)
άθροισμα + = addend?
timesTwo =! timesTwo?
)
int modulus = άθροισμα% 10?
επιστροφή modulus == 0?
)
//-----
/ / Δοκιμή
//-----
δημόσια στατική άκυρη κύρια (String [] args) (
String cardNumber = "4408 0412 3456 7890"?
Δυαδική Έγκυρη LuhnCheck.isValid = (cardNumber)?
System.out.println (cardNumber + ":" + ισχύει)?
cardNumber = "4408 0412 3456 7893"?
= έγκυρη LuhnCheck.isValid (cardNumber)?
System.out.println (cardNumber + ":" + ισχύει)?
cardNumber = "4417 1234 5678 9112"?
= έγκυρη LuhnCheck.isValid (cardNumber)?
System.out.println (cardNumber + ":" + ισχύει)?
cardNumber = "4417 1234 5678 9113"?
= έγκυρη LuhnCheck.isValid (cardNumber)?
System.out.println (cardNumber + ":" + ισχύει)?
)
)
|
Bookmark η Luhn Check Algorithm δεδομένων σε Java
Τελευταίες θέσεις Blog
- SourceForge έναντι Freshmeat

