你好我目前正在编写一些类的东西。我们基本上是用信用卡检查器从文本文件中提取数字。我们必须遵守的关于校验位的规则如下。根据位置更改数字
从卡号中删除最后一位数字。最后一位数字是支票 数字。
反转数字。
乘以2.
从任何结果高于9
萨姆所有的数字减去9在奇数位置(1,3,5,等)的数字。
校验位(卡的最后一个数字),是你 需要添加得到的10的倍数的量(模数10)
所以我把校验位远通过设置一个新的变量,并采取卡#/ 10。这是很长的没有小数,所以这摆脱了最后一位数字。然后我使用原始数字的%10将该数字存储为我的校验数字。然后我用一个循环来反转其可以被视为数字:
long lcards = Long.parseLong(cards);
long lastDigit = lcards % 10;
long newCard = lcards/10;
long reverseCard = 0;
while (newCard != 0)
{
reverseCard = reverseCard * 10;
reverseCard = reverseCard + (newCard % 10);
newCard = newCard/10;
}
我现在粘在下一步骤:/。我将如何做到这一点?谢谢!
您可能想要将数字存储为字节数组。比使用位操作和计算可能更容易。 –
我究竟该怎么做呢? – bobobobbins