地域名と地域を構成する座標のリストを含むテキスト ドキュメントを解析しようとしています。テキストは、次のように自由形式で書かれているため、簡単に解析できる方法で構造化されていません。
GUZ06 - カブルチャー川
本土の海洋公園境界線と南緯 27 度 08.981 分の緯度 (南緯 27 度 08.981 分、東経 153 度 01.822 分の地点またはその付近) の交点から始まる線によって囲まれた地域(a) 本土の海洋公園の境界に沿って、東経 153 度 02.197 分の子午線との交点まで (カブルチャー川を経由して) ほぼ北西および南東に走る。 27°08.762' 南、153°02.197' 東); そして
...
GUZ07-[...]
私ができるようにしたいのは、地域の名前と照合し、次の地域がどこにあるかを見つけ、2 つの一致点の間のテキスト ブロックを抽出し、そのブロックで座標抽出ロジックを実行することです。次のようなテキストを使用します。
while (matcher.find()) {
int textStart = matcher.end() + 1; //remember the end of the current title
matcher.find(); //find the start of the next title
String regionData = myBigString.substring(textStart, matcher.start()); //extract the text for this region
//[process the region data]
matcher.forgetLastFind(); //need to go back so that the next iteration starts from the correct place
}
もちろん、forgetLastFind()
本物ではありません。Matcher
APIを使用してこの動作を近似する方法はありますか? Stack.peek()
理想的には、データ構造の内部状態を実際に変更せずに次の要素を返すようなものが欲しいです。