2013-02-21 3 views
-2

У меня есть странный файл данных, который нужно разобрать. Это скорее логический вопрос, чем вопрос с кодом. Это выглядит как этотсинтаксический анализатор данных с меткой времени в java

 
01-11-2012 18:00:24 
01-11-2012 18:00:39 
01-11-2012 18:00:54 
dataline1 
01-11-2012 18:01:09 
dataline2 
dataline3 
01-11-2012 18:01:24 
dataline4 
03-07-2010 18:01:39 

Ожидаемые из пут должны быть

 
01-11-2012 18:00:24,empty 
01-11-2012 18:00:39,empty 
. 
. 
01-11-2012 18:01:09,dataline2;dataline3 

Любых идеи, как это сделать? Я пробовал читать через буферизованный читатель и имел несколько ifs, но не мог получить логику прямо.

ответ

1

Как насчет того, чтобы попытаться проанализировать каждую строку с помощью SimpleDateFormat с соответствующим шаблоном (выглядит так: «MM-dd-yyyy HH: mm: ss»), а затем перехватывать java.text.ParseException и рассматривать их как строки данных вместо этого? Вам просто нужно будет отслеживать последнюю дату, которую вы проанализировали, а затем связать все последующие строки данных с этой датой до следующего раза, когда вы будете проходить через дату.

+0

Я не уверен, что использование исключений - хорошая идея. это рекомендуемая практика или просто способ сделать это? Я думал об использовании считывателя LineNumber. идентифицируя простыни с отметками времени и затем считывая данные в этих номерах строк. –

+0

Обычно это не отличная идея. Но в этом случае вы не знаете, является ли это датой или нет, если вы не попытаетесь ее разобрать или не дублируете работу, которую SimpleDateFormat уже делает. Поэтому в этом случае я бы сказал, что (обычно нежелательный) дизайн стоит компромисса. –

+0

в порядке. это то, о чем я думал. Благодарю. lemme попробуйте это. Благодарю. –

Смежные вопросы