Я пытаюсь взять ди git из строки и выполнить над ней операции. Это соответствующий код, над которым я работаю (обновлено):
String cardNumber;
String curNum;
long currentNum;
int firstNum;
int randNum;
int i;
long sum = 0;
while (i <= 15) {
//Delete this line if it doesnt work
currentNum = Long.parseLong(cardNumber.substring(i));
if (i % 2 == 0) {
//currentNum = Integer.parseInt(cardNumber.charAt(i));
currentNum = currentNum * 2;
if (currentNum > 9) {
currentNum = currentNum - 9;
sum = sum + currentNum;
}
else {
//currentNum = Integer.parseInt(cardNumber.charAt(i));
sum = sum + currentNum;
}
i++;
}
long lastVal = 10 - (sum % 10);
char charNum = (char) lastVal;
//add int to char statement here
cardNumber = cardNumber + charNum;
}
System.out.println(cardNumber);
userNum--;
}
Код // - это еще один вариант, над которым я работал и не хотел терять, поэтому, если есть способ сделать это работать с этим, это здорово! Сообщение об ошибке, которое возвращает этот код:
Исключение в потоке «main» java .lang.NumberFormatException: для входной строки: «64406849400888» в java .base / java .lang.NumberFormatException. forInputString (NumberFormatException. java: 65) в java .base / java .lang.Long.parseLong (Long. java: 692) в java .base / java .lang.Long. parseLong (Long. java: 817) в MasterCardGenerator.main (MasterCardGenerator. java: 54)