逗号分隔的字符串改数组
//经纬度坐标点
String str="116.424224,39.904009,116.445167,39.906511,116.442077,39.897754,116.424911,39.896371,116.415813,39.899795,116.415212,39.903746";
//转换成这样是数组怎么弄?????????????????
var arr ={
[116.424224,39.904009]
,[116.445167,39.906511]
,[116.442077,39.897754]
,[116.424911,39.896371]
,[116.415813,39.899795]
,[116.415212,39.903746]
}
一个经度+一个纬度是一组,不能单纯以逗号分隔生成数组了,这个怎么搞
var str = "116.424224,39.904009,116.445167,39.906511,116.442077,39.897754,116.424911,39.896371,116.415813,39.899795,116.415212,39.903746";
function strToCoord(str) {
var coords = [];
var arr = str.split(",");
for (var i = 0; i < arr.length; i+=2) {
coords.push([parseFloat(arr[i]), parseFloat(arr[i+1])]);
}
return coords;
}
var coord = strToCoord(str);
console.log(coord);
望采纳
那你根据逗号分隔一下,根据下标 偶数就是经度,奇数就是维度,然后两个两个组合起来就行吧,或者创建二维数组,组合起来
public static void main(String[] args) {
String str = "116.424224,39.904009,116.445167,39.906511,116.442077,39.897754,116.424911,39.896371,116.415813,39.899795,116.415212,39.903746";
String[] strArray = str.split(",");
double[][] arr = new double[strArray.length / 2][2];
for (int i = 0; i < strArray.length; i += 2) {
arr[i / 2][0] = Double.parseDouble(strArray[i]);
arr[i / 2][1] = Double.parseDouble(strArray[i + 1]);
}
for (int i = 0; i < arr.length; i++) {
System.out.print("[" + arr[i][0] + "," + arr[i][1] + "]");
if (i != arr.length - 1) {
System.out.print(",");
}
}
}