(Untitled)

Apr 16, 2014 00:26

Из решений Google Code Jam этого года:

File f = new File("D-small-attempt0.in");
Scanner t = new Scanner(f);
// ...
StringTokenizer bn =new StringTokenizer(t.nextLine()," ");
// ...
bna[i]=Double.parseDouble(bn.nextToken());

Leave a comment

Comments 6

peregarrett April 16 2014, 06:56:41 UTC
А в чем WTF?

Reply


dark_barker April 16 2014, 07:31:03 UTC
как-то неочевидно

Reply


redis April 16 2014, 12:58:06 UTC
Эммм... Попробую. Допускаю, что формат файла строгий и проверки не нужны.

StringTokenizer у нас deprecated. Но он и не нужен, так как есть метод Scanner.nextDouble(), так?

Reply

invokevirtual April 17 2014, 08:56:38 UTC
Совершенно верно, входные данные представляют собой набор пар {строка с количеством вещественных чисел, строка с разделённым пробелами списком вещественных чисел} и StringTokenizer здесь избыточен, достаточно t.nextDouble()

Собственно, сами условия задачи: http://code.google.com/codejam/contest/2974486/dashboard#s=p3

Reply

redis April 18 2014, 06:51:50 UTC
Я бы все же сказал, что это просто плохой код. Или даже просто странный. Но WTF, это когда глаза из орбит вылезают, а в голове лишь один вопрос: "Но зачем?! Но как?!"

Например, из недавно попавшегося:

if (something != null) {
// do something with something
} else {
something.setField(0);
}

Reply

invokevirtual April 19 2014, 05:08:03 UTC
Тут я бы не был столь категоричен, это, скорее всего, банальная невнимательность.
Если почитать блог PVS-Studio на хабре, можно заметить, что разыменование нулевого указателя -- довольно часто встречающаяся ошибка.

Reply


Leave a comment

Up