You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio Java:过滤指定邮箱提取对应经纬度值

需求实现:筛选指定邮箱的经纬度数据

需求说明

现有包含邮箱、经纬度等信息的JSON数组数据,以及Android Studio中的Java代码片段,需修改代码实现以下功能:

  • 仅筛选出邮箱为aaaa@mail.address的条目
  • 提取并打印符合条件条目的lati(纬度)与longt(经度)值
  • 将符合条件的经纬度添加至latLngList

原代码

public void onCompleted(List<Lalo> laloList) {
    // I consider here is list of latlng from database.
    List<LatLng> latLngList = new ArrayList<>();
    Log.d("wwww", "laloList: " + laloList);

   for (Lalo lalo : laloList) {
        String a = lalo.getLati();
        Log.d("ww", "a: " + a);
        String b = lalo.getLongt();
        String c = lalo.getEmail();
        Log.d("ww", "c: " + c);
        Log.d("ww", "b: " + b);
        LatLng latLng = new LatLng(Double.parseDouble(a), Double.parseDouble(b));
        latLngList.add(latLng);

   }
}

原JSON数据

[
    {
        "num": "34304",
        "email": "aaaa@mail.address",
        "lati": "8888888",
        "longt": "88888888",
        "time": "2022-12-08 21:15:39"
    },
    {
        "num": "34303",
        "email": "aaaa@mail.address",
        "lati": "8888",
        "longt": "88888",
        "time": "8888888"
    },
    {
        "num": "34302",
        "email": "bbbb@mail.address",
        "lati": "8888",
        "longt": "88888",
        "time": "8888888"
    },
    {
        "num": "34301",
        "email": "aaaa@mail.address",
        "lati": "8888",
        "longt": "88888",
        "time": "8888888"
    },
    {
        "num": "34300",
        "email": "cccc@mail.address",
        "lati": "8888",
        "longt": "88888",
        "time": "8888888"
    }
]

修改后的完整代码

public void onCompleted(List<Lalo> laloList) {
    // 存储符合条件的经纬度列表
    List<LatLng> latLngList = new ArrayList<>();
    Log.d("wwww", "原始数据列表: " + laloList);

    // 目标筛选邮箱
    String targetEmail = "aaaa@mail.address";

    for (Lalo lalo : laloList) {
        String email = lalo.getEmail();
        // 判断当前条目的邮箱是否匹配目标邮箱
        if (targetEmail.equals(email)) {
            String latiStr = lalo.getLati();
            String longtStr = lalo.getLongt();
            
            // 打印符合条件的经纬度
            Log.d("筛选结果", String.format("匹配邮箱 %s,纬度:%s,经度:%s", targetEmail, latiStr, longtStr));
            
            try {
                // 转换字符串为Double类型,避免格式异常
                double lati = Double.parseDouble(latiStr);
                double longt = Double.parseDouble(longtStr);
                LatLng latLng = new LatLng(lati, longt);
                latLngList.add(latLng);
            } catch (NumberFormatException e) {
                // 处理经纬度格式错误的情况
                Log.e("数据错误", String.format("邮箱 %s 的经纬度格式无效:纬度=%s,经度=%s", targetEmail, latiStr, longtStr), e);
            }
        }
    }

    // 可选:打印最终筛选后的经纬度列表
    Log.d("最终列表", "符合条件的经纬度数量:" + latLngList.size() + ",列表内容:" + latLngList);
}

关键修改说明

  • 添加邮箱筛选逻辑:通过targetEmail.equals(email)判断当前条目是否符合邮箱要求,仅匹配条目执行后续操作
  • 优化日志输出:调整日志内容,让打印信息更清晰,明确标注筛选结果
  • 增加异常处理:捕获Double.parseDouble()可能抛出的NumberFormatException,避免因经纬度格式错误导致程序崩溃
  • 优化变量命名:将原代码中模糊的a、b、c改为latiStr、longtStr、email,提升代码可读性

内容的提问来源于stack exchange,提问作者andrew kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 14:40:35