فإن الرقم Luhn راجع الخوارزمي في جاوة
//------------------------------------------------ ---------
/ / الشيكات لرقم بطاقة ائتمان صحيح Luhn باستخدام خوارزمية
//------------------------------------------------ ---------
الطبقة العامة المجردة (LuhnCheck
//--------------------------------
/ / مرشح من أصل غير أرقام الحروف
//--------------------------------
سلسلة خاصة جامدة getDigitsOnly (سلسلة) (
StringBuffer digitsOnly جديدة StringBuffer = () ؛
ج شار ؛
ل(int ط = 0 ؛ ط <s.length () ؛ ط + +) (
ج = s.charAt (ط) ؛
إذا كان (Character.isDigit (ج)) (
digitsOnly.append (ج) ؛
)
)
عودة digitsOnly.toString () ؛
)
//-------------------
/ / Luhn إجراء فحص
//-------------------
ساكنة منطقي isValid العامة (سلسلة cardNumber) (
سلسلة digitsOnly = getDigitsOnly (cardNumber) ؛
int المبلغ = 0 ؛
int الرقم = 0 ؛
int المضاف = 0 ؛
منطقي timesTwo = زائفة ؛
ل(int ط = digitsOnly.length () -- (1) ؛ ط> = 0 ؛ ط --) (
الرقم = Integer.parseInt (digitsOnly.substring (ط ، ط + 1)) ؛
إذا كان (timesTwo) (
* الرقم المضاف = 2 ؛
إذا كان (المضاف> 9) (
المضاف -= 9 ؛
)
)
الا (
= الرقم المضاف ؛
)
+ = المبلغ المضاف ؛
timesTwo =! timesTwo ؛
)
int المعامل = المبلغ 10 ٪ ؛
عودة المعامل == 0 ؛
)
//-----
/ / تجارب
//-----
الجمهور ساكنة باطلة الرئيسي (الخيط [] args) (
سلسلة 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 + ":" + صالحة) ؛
)
)
|
احفظ عملية التحقق من البيانات Luhn القاعدة في جاوة
آخر رابط الوظائف
- مقابل Freshmeat سورس.

