信用卡验证

时间:2013-11-09 17:48:32

标签: java string int

我需要帮助才能将字符串转换为int,我已经搜索过了 并没有找到任何可以帮助我解决这个具体问题的东西。

这是我到目前为止所做的..(代码下载)

  • 卡必须是6位数(例如123456) - 得到它
  • 我已经隔离了卡号的每个数字(一,数十,数百......)
  • 我使用字符串组合了卡片的前五位数字(左起)。

现在在组合前5位数字后(例如1 + 2 + 3 + 4 + 5 = 12345) 我需要在7(12345%7)

中修改这个数字

但它一直给我下一个错误 -

java.lang.number.formatexception 输入字符串:fiveDigits :(在java.lang.number.formatexception中)

任何有关如何修复它的指南都将非常感激。 感谢。

if(creditCard<=99999||creditCard>=1000000)
         System.out.println("Your credit card is not valid. You cannot buy the ticket");
         else
        {

                ones = creditCard%10;
                tens = (creditCard%100)/10;
                hundreds = (creditCard%1000)/100;
                thousands = (creditCard%10000)/1000;
                tensOfThousands = (creditCard%100000)/10000;
                hunOfThousands = (creditCard%1000000)/100000;

                String fiveDigits = "" + hunOfThousands+tensOfThousands+thousands+hundreds+tens;
                int firstFiveDigits = Integer.parseInt("fiveDigits");
                int remainder = firstFiveDigits%7;


                if(remainder==ones)
                 System.out.println("Your credit card is valid. Bon Voyage!");
                else
                   System.out.println("Your credit card is not valid. You cannot buy the ticket");  

2 个答案:

答案 0 :(得分:1)

删除变量fiveDigits周围的引号

int firstFiveDigits = Integer.parseInt(fiveDigits);

答案 1 :(得分:0)

int firstDigits = (allDigits - allDigits%10)/10;

这不好但是它更好......

您可以将“真实”CC编号作为字符串操作(因为它们很长) - 只需将allDigitsAsString作为输入然后

String firstDigitsAsString = allDigitsAsString.substring(0, allDigitsAsString.length() - 1);
int firstDigits = Integer.parseInt(firstDigitsAsString);

对于奖励积分,请向付款处理程序存根添加一些模仿电话。