숫자 확인 알고리즘은 Luhn Java에서
//------------------------------------------------ ---------
유효한 신용 카드 번호 Luhn 알고리즘을 사용하기위한 / / 수표
//------------------------------------------------ ---------
공용 추상 클래스 LuhnCheck (
//--------------------------------
/ / 필터가 아닌 - 자리 캐릭터
//--------------------------------
(s 문자열 민간의 정적 문자열 getDigitsOnly) (
StringBuffer digitsOnly = 새로운 StringBuffer ();
숯불 C;
(int 전 = 0;위한 난 <s.length (); 난 + +) (
C = s.charAt은 (i);
만약 (Character.isDigit (C)) (
digitsOnly.append (C);
)
)
반환 digitsOnly.toString ();
)
//-------------------
/ / 수행 Luhn 확인
//-------------------
공공 정적은 boolean isValid (문자열 cardNumber) (
문자열 digitsOnly = getDigitsOnly (cardNumber);
int 합이 = 0;
자리 = 0 int;
int addend = 0;
부울 timesTwo = 거짓;
(int 전 = digitsOnly.length에 대한 () - 1; 난> = 0; 난 -) (
자리 = Integer.parseInt ((난, 난 + digitsOnly.substring 1));
(timesTwo) (
addend = 자리 * 2;
(addend> 9) (
addend -= 9;
)
)
다른 (
addend = 자리;
)
합이 + = addend;
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 + ":"+ 유효);
)
)
|
스크랩 the Luhn 체크 데이터 알고리즘 자바에

