如何用Java正则互换.kml文件中的x轴与y轴坐标数值
坐标互换实现方案
KML 坐标默认格式为经度(x),纬度(y),可选高度,多组坐标间用空格分隔,你可以直接用以下正则配合replace方法实现x、y数值互换:
1. 匹配规则
使用正则 ([\d.+-]+),([\d.+-]+)(,?[\d.+-]+)? 匹配单组坐标:
- 分组1捕获x轴数值(支持正负号、小数格式)
- 分组2捕获y轴数值
- 分组3捕获可选的高度值,不存在时自动为空
替换模板为$2,$1$3,直接交换前两个分组的位置即可。
2. 代码示例
Kotlin 版本
// 替换为你的原始坐标串 val originalCoords = "116.3972,39.9075,10 121.4737,31.2304" val result = originalCoords.replace(Regex("([\\d.+-]+),([\\d.+-]+)(,?[\\d.+-]+)?"), "$2,$1$3")
Java 版本
// 替换为你的原始坐标串 String originalCoords = "116.3972,39.9075,10 121.4737,31.2304"; String result = originalCoords.replaceAll("([\\d.+-]+),([\\d.+-]+)(,?[\\d.+-]+)?", "$2,$1$3");
效果示例
| 输入 | 输出 |
|---|---|
116.3972,39.9075,10 | 39.9075,116.3972,10 |
121.4737,31.2304 | 31.2304,121.4737 |
注意:如果你的坐标串存在多余换行、连续空格,建议先做空白字符格式化再执行替换,避免匹配异常。
内容的提问来源于stack exchange,提问作者Teo Pal
相关产品推荐
相关产品推荐

