初心者の Java プログラマーとして、個人的なプロジェクトのデータを分析しようとしているときに、かなり高いハードルに遭遇しました。次の形式の約 33.5k データ ポイントを含むテキスト ファイルがあります。
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 で始まる行は、Number of Accesses 行の整数に対応します。ファイルを解析し、Lat、Lon、およびアクセス回数が 1 を超える PointNumbers のみの各アクセス インスタンスに続く 2 つの値を出力したいと思います。
スキャナーまたはトークナイザーから始めるか、パターンをコンパイルするかはわかりません。有効な PointNumbers のみを保存しやすくする手法はどれですか? 直感的に、ファイルを解析して、関連する値をオブジェクトに配置するように指示されます。
PointNumber num1 = new PointNumber(lat, lon, accesses[]);
アクセス配列の長さが 1 より大きい場合は、オブジェクトをループ処理してオブジェクトの値を出力します。一方、要件を満たさない情報は無視することをお勧めします。これは、解析中に NumberOfAccesses 値をチェックし、値が <= 1 の場合は次の string.startsWith("PointNumber:") にジャンプすることで実行できますか?
このコミュニティの圧倒的多数が、私を XML や YAML に向かわせようとするだろうと感じていますが、私は Java でこれに取り組むことを本当に好んでいます。アドバイス、指示、または適用例は常に大歓迎です。