Я пытаюсь изучить Java самостоятельно, и я столкнулся с проблемой, которую я не совсем понимаю. Я попытался написать программу для вычисления кросс-суммы. Моя идея состояла в том, чтобы разбить введенный номер на массив char
, а затем просто пропустить массив и рассчитать сумму.Откуда берутся эти цифры?
Это то, что у меня есть:
public static int calcCrossSum (long number){
int sum = 0;
char[] charArray = String.valueOf(number).toCharArray();
for(int i = 0; i < charArray.length; i++){
sum += charArray[i];
}
return sum;
}
Если я попробовать этот метод с номером 123, я получаю 150 в результате, и я не знаю, почему. Я попытался использовать отладчик, и кажется, что моя переменная test
добавляет странные числа себе, даже если отладчик показывает, что содержимое массива кажется правильным.
Буду признателен, если кто-нибудь объяснит мне, что я сделал не так, и откуда эти цифры. Если что-то неясно, я с радостью попытаюсь добавить дополнительную информацию.
Вы добавляете значения символов вместо их целочисленных значений. Разделите их на целочисленное значение перед добавлением в 'sum'. Google «конвертирует символ в целое число в Java» – Kon
У меня проблема, но откуда эти цифры? Я добавляю значение ASCII символа? – ViktorG