2013-11-09 3 views
0

Мне нужна помощь для преобразования из строки в int, я искал и не нашел ничего, что могло бы помочь мне с этим конкретным вопросом.Проверка кредитной карты

это то, что я получил до сих пор .. (код вниз)

  • карта должна быть 6 цифр длиной (например, 123456) - получил его
  • Я изолирован каждую цифру карты число (единицы, десятки, сотни ...)
  • Я объединил первые пять цифр (слева) карты, используя строку.

Теперь после объединения первые 5 цифр (например, 1 + 2 + 3 + 4 + 5 = 12345) мне нужно MOD это число в 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"); 
+0

Вы разбираете строку «fiveDigits», а не строку, представленную переменной fiveDigits. Удалите кавычки, и все будет в порядке. –

ответ

1

Удалите кавычки вокруг переменной fiveDigits

INT firstFiveDigits = Integer.parseInt (fiveDigits);

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

Это не хорошо, но это лучше ...

Вы можете работать с «реальными» номерами CC как строки (так как они довольно долго) - просто получить ваши allDigitsAsString в качестве входных данных, а затем

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

Для бонусных очков добавьте некоторый имитационный звонок на процессорный заглушку.

Смежные вопросы