Как проверить что в переменную передано null?
Учу джавку, решаю ДЗ со skillbox.
Задание для теста :
Реализуйте метод
sumDigits, который возвращает сумму цифр числа.Пример: передано 12345, метод должен вернуть 15; если передано null, то должен вернуть -1.
Сделал подсчет суммы цифр, но не могу проверить на null.
public static int sumDigits(Integer number) {
//@TODO: write code here and delete TODO line
String string = Integer.toString(number);
Integer sum = 0;
if (number != null) {
for (int i = 0; i < string.length(); i++) {
sum += Integer.parseInt(String.valueOf(string.charAt(i)));
}
return sum;
}
else {
return -1;
}
}
как правильно?
Ответы (2 шт):
Автор решения: Sergiej Koczergin
→ Ссылка
вот что значит учится ночью ) я в тесте получал npe вот и не проверяло на нулл сначала проверим обЪект на нулл, а потом с ним работаем, а я наоборот сделал вот правильно как :
Integer sum = 0;
if (number != null) {
String string = Integer.toString(number);
for (int i = 0; i < string.length(); i++) {
sum += Integer.parseInt(String.valueOf(string.charAt(i)));
}
return sum;
}
else {
return -1;
}
Автор решения: Circassian
→ Ссылка
Вот так будет правильней, без конвертации в строку и обратно и c использованием примитивного int.
public static int sumDigits(int number) {
if (number == null) {
return -1;
}
int sum = 0;
while (number > 0) {
int remain = number % 10;
sum += remain;
number = (number - remain) / 10;
}
return sum;
}