Доброго времени суток!
Валидатор задачу принял, но смущают два момента в строках:
1) print((short)intNum); - Идея пишет, что неконвертируемый тип;
2) double doubleNum = Double.parseDouble(s); - компилятор написал на данную строку NullPointerException;
сама конструкция кода:
while (...) {
try {
проверка на принадлежность к Integer или short с использованием if () { }
} catch (NumberFormatException e) {
try {
проверка на - Double;
} catch (NumberFormatException ee) {
вывод String;
}
}
}
hidden #1801022
37 уровень
Ошибка NullPointerException
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
--------Master
16 сентября 2018, 17:44
1) Как из приведенной "конструкции" можно понять, что собой представляет переменная intNum?
2) Аналогичный вопрос: как в s помещается какое-то значение?
0
hidden #1801022
16 сентября 2018, 18:10
String s = reader.readLine();
int intNum = Integer.parseInt(s);
0
--------Master
16 сентября 2018, 19:54
Переменная s может быть null, как вариант, при запуске на сайте, когда в поле "Входные данные" не введено соответствующее значение. При обычном чтении с клавиатуры (при запуске в той же Идее) такого не должно быть - даже при вводе пустой строки объект создается.
Насчет intNum указанной проблемы не должно быть, потому что int и short - разные типы, совместимые между собой.
Выложи полностью код, чтобы можно было делать какие-то выводы, что там может не работать и выдавать ошибки.
+1
hidden #1801022
17 сентября 2018, 14:34
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String s;
while (!("exit".equals(s = reader.readLine()))) {
try {
int intNum = Integer.parseInt(s);
if (intNum > 0 && intNum < 128) {
print((short)intNum);
} else {
print(intNum);
}
} catch (NumberFormatException e) {
try {
double doubleNum = Double.parseDouble(s);
print(doubleNum);
} catch (NumberFormatException ee) {
print(s);
}
}
}
}
0
hidden #1801022
17 сентября 2018, 14:39
Идея больше не пишет, что тип неконвертируемый (после проверки задачи).
А задачу действительно проверяла через сайт (с входными данными).
Не подскажете, почему при проверке в Идее выскакивает решение предыдущей задачи?
0
--------Master
17 сентября 2018, 14:59
Насколько помню, когда курсор находится не в поле кода, а в поле ввода с консоли, отправляется на проверку именно предыдущая отправленная задача, почему - сказать не могу.
0
hidden #1801022
20 сентября 2018, 10:43
Cпасибо за ответы.
0