xref: /aosp_15_r20/external/jsr305/sampleUses/src/main/java/LuhnVerification.java (revision b04680f1c99af11485d01a884cf292a99837b6c5)
1*b04680f1SMatt Gilbride public class LuhnVerification {
2*b04680f1SMatt Gilbride 
checkNumber(String value)3*b04680f1SMatt Gilbride 	static boolean checkNumber(String value) {
4*b04680f1SMatt Gilbride 		int result = 0;
5*b04680f1SMatt Gilbride 		boolean special = false;
6*b04680f1SMatt Gilbride 		for (int i = value.length() - 1; i >= 0; i--) {
7*b04680f1SMatt Gilbride 			int v = value.charAt(i) - '0';
8*b04680f1SMatt Gilbride 			if (v < 0 || v > 9)
9*b04680f1SMatt Gilbride 				return false;
10*b04680f1SMatt Gilbride 			if (special) {
11*b04680f1SMatt Gilbride 				v = v * 2;
12*b04680f1SMatt Gilbride 				if (v > 9)
13*b04680f1SMatt Gilbride 					v = v - 10 + 1;
14*b04680f1SMatt Gilbride 			}
15*b04680f1SMatt Gilbride 			result += v;
16*b04680f1SMatt Gilbride 			special = !special;
17*b04680f1SMatt Gilbride 		}
18*b04680f1SMatt Gilbride 		System.out.println(result);
19*b04680f1SMatt Gilbride 		return result % 10 == 0;
20*b04680f1SMatt Gilbride 	}
21*b04680f1SMatt Gilbride 
main(String args[])22*b04680f1SMatt Gilbride 	public static void main(String args[]) {
23*b04680f1SMatt Gilbride 		System.out.println(checkNumber(""));
24*b04680f1SMatt Gilbride 	}
25*b04680f1SMatt Gilbride 
26*b04680f1SMatt Gilbride }
27