我需要编写一个验证信用卡号码的Java程序,为此,我需要对每个数字执行操作。如何在不使用字符串或数组的情况下获取这些数字?
答案 0 :(得分:2)
int number; (This would be your credit card number)
while (number > 0) {
System.out.println( number % 10);
number = number / 10;
}
这将以相反的顺序打印它们。您可以通过这种方式对数字执行操作。
答案 1 :(得分:0)
假设您正在使用64位整数类型(对于16位数的卡号而言已足够),long
将执行此操作;例如long num
。
使用num % 10
提取最右边的数字。
使用num / 10
删除最右边的数字。
这就是你需要做的所有事情(显然是在一个循环结构中),但为什么这样呢?做得好而不是。使用信用卡号码符合的http://en.wikipedia.org/wiki/Luhn_algorithm。