背景
- 最近在工作中需要读取字符串中的经纬度值,最后通过正则表达式循环读取字符串的内容解决了这个问题,这里记录一下。
代码实现
public static void main(String[] args) {
String targetStr = "LINESTRING (120.87614035341478 36.33697455869436, 120.87677164713541 35.33699137369792, 129.87898410373263 38.33704318576389, 127.88034099317976 39.33707871780315)";
String targetStr1 = "POINT (120.99211293351829 34.06202222975342)";
String targetStr2 = "POLYGON ((117.9919073 31.0616796, 117.9917349 31.0619421, 117.9918844 31.0621527, 119.992528 33.0622988, 120.9925151 33.0621088, 114.9919073 35.0616796))";
Pattern p = Pattern.compile("(?<lngLat>(\\d+\\.\\d+[\\s]*\\d+\\.\\d+))");
Matcher m = p.matcher(targetStr2);
while (m.find()) {
String element = m.group("lngLat");
System.out.println("element=== "+element);
String[] arrElement = element.split(" ");
String lngStr = arrElement[0];
String latStr = arrElement[1];
}
}
代码运行结果