Как начинающий Java-программист, я столкнулся с довольно серьезным препятствием при попытке проанализировать данные для моего личного проекта.У меня есть текстовый файл с ~ 33,5 тыс. Точек данных в следующем формате:
PointNumber: 33530
Lat: 8.99167773897820e-001
Lon: 6.20173660875318e+000
Alt: 0.00000000000000e+000
NumberOfAccesses: 4
0 4.80784667215499e+003 4.80872732950073e+003
0 1.05264215520092e+004 1.05273043378212e+004
1 1.65167780853593e+004 1.65185840063538e+004
1 6.52228387069902e+004 6.52246514228552e+004
Последние строки, то есть строки, начинающиеся с 0 или 1, соответствуют целому числу в строке «Количество доступов».Я хотел бы проанализировать файл и распечатать Lat, Lon и два значения, следующие за каждым экземпляром доступа только PointNumbers с более чем 1 числом обращений.
Я не уверен, стоит ли начинать со сканера или токенизатора или скомпилировать шаблон.Какой метод облегчает хранение только действительных номеров PointNumbers?Интуиция подсказывает мне разобрать файл, поместив соответствующие значения в объект:
PointNumber num1 = new PointNumber(lat, lon, accesses[]);
Затем переберите объекты и напечатайте значения объекта, если длина массива доступа> 1. С другой стороны, онбыло бы лучше игнорировать информацию, которая не соответствует требованиям.Можно ли это сделать, проверив значение NumberOfAccesses при разборе, а затем перейти к следующему значению string.startsWith ("PointNumber:"), если значение равно <= 1?</p>
У меня такое чувство, что подавляющее большинство этого сообщества попытается направить меня в сторону XML или YAML, но я действительно предпочитаю пытаться решить эту проблему на Java.Любые советы, указания или применимые примеры всегда приветствуются.