Java 在android中从JsonObject中提取坐标

Java 在android中从JsonObject中提取坐标,java,android,json,jsonobject,Java,Android,Json,Jsonobject,我将获取包含不同对象的Json数组,并将它们提取到变量中。 但其中之一对我来说更难: -“查询”:“Lat-34.88和Lon 174.76” 我想从这个物体中提取纬度和经度。 我知道如何提取具有起始值和结束值的字符串,但我遇到的问题是坐标长度会根据接收到的数据而变化 基本上我只需要提取纬度,从“Lat”加上空格开始,到“and”减去空格结束。然后又是经度,从“Lon”开始加上空间 有人能帮忙吗 谢谢尝试正则表达式: import java.util.regex.Matcher; import

我将获取包含不同对象的Json数组,并将它们提取到变量中。 但其中之一对我来说更难: -“查询”:“Lat-34.88和Lon 174.76”

我想从这个物体中提取纬度和经度。 我知道如何提取具有起始值和结束值的字符串,但我遇到的问题是坐标长度会根据接收到的数据而变化

基本上我只需要提取纬度,从“Lat”加上空格开始,到“and”减去空格结束。然后又是经度,从“Lon”开始加上空间

有人能帮忙吗


谢谢

尝试正则表达式:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("Lat ([-0-9.]*) and Lon ([-0-9.]*)");
        checkMatch(pattern, "Lat 34.8.2 and Lon -174.2"); 
        checkMatch(pattern, "Lat -34.4 and Lon 174"); 
    }

    private static void checkMatch(Pattern pattern, String latAndLong) {
        Matcher matcher = pattern.matcher(latAndLong);
        System.out.println(matcher.matches());
        System.out.println(matcher.group(0));
        System.out.println(matcher.group(1)); 
        System.out.println(matcher.group(2));
    }
}
输出 可以使用拆分查询字符串

    String query = "Lat -34.88 and Lon 174.76";
    String[] split = query.split(" ");
    double lat = Double.parseDouble(split[1]);
    double lon = Double.parseDouble(split[4]);
    System.out.printf("Lat: %s. Lon: %s", lat, lon);
输出:

Lat: -34.88. Lon: 174.76
Lat: -34.88. Lon: 174.76