gpt4 book ai didi

java - 限制for循环结果的大小

转载 作者:行者123 更新时间:2023-11-30 02:36:31 25 4
gpt4 key购买 nike

我正在使用 for 循环来解析 android 中的 GPX 文件,并将生成的纬度和经度放入适合谷歌静态 map 的字符串中。静态 map API 允许 URL 最多约 2000 个字符。

我想做的是遍历 gpx 文件中的条目,以便在不产生太多字符的情况下获得最大数量的细节。例如,如果经纬度为 10 个字符,那么我总是希望生成尽可能接近 200 个标记。

我从这个工作代码开始

List<Location> gpxList = decodeGPX(gpxFile);
for(int i = 0; i < gpxList.size(); i++){
info += ((Location)gpxList.get(i)).getLatitude()
+ ","
+ ((Location)gpxList.get(i)).getLongitude() + "|";
}

这样做的明显方法是取列表的长度并除以允许的最大标记数(在本例中为 200),确保这是一个整数,然后在循环迭代时递增这么多项.但是我如何确保我不会在列表末尾出现越界错误?

编辑

明确地说,如果有意义的话,我想减少数据点的频率而不是减少点的数量。想象一下,我有一个带有 2000 个标记的 gpx 文件,可以进行往返。我想生成一个包含 200 个点的列表,它仍然给出完整的行程(精度有所损失),而不是只列出前 200 个点,它只给出行程的开始

最佳答案

在向 info 添加新字符之前字符串(我假设它是一个字符串),检查要添加的字符数,并确认 info 中有足够的空间。字符串。如果不是,则结束循环。

List<Location> gpxList = decodeGPX(gpxFile);
boolean hasRoom = true;
for(int i = 0; i < gpxList.size() && hasRoom; i++) {
String next = ((Location)gpxList.get(i)).getLatitude()
+ ","
+ ((Location)gpxList.get(i)).getLongitude() + "|";
if (info.length()+next.length()<=2000)
info += next;
else
hasRoom = false;
}

关于java - 限制for循环结果的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26454407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com