逗号分隔的字符串改数组

逗号分隔的字符串改数组

//经纬度坐标点
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(",");
             }
         }
        }