类型将String转换为Object [] []

时间:2014-09-09 14:54:30

标签: java arrays string casting

我想将下面的String转换为简单的二维数组(Object [] [])。

String personArray ="{{Melroy,25,India},{Jack,26,USA}}"; // nothing but a simple string with appearance of a 2D array
  1. 这可以在第一时间完成吗?

  2. 如果是这样,最简单的方法是什么?

  3. 任何帮助任何输入将不胜感激。

1 个答案:

答案 0 :(得分:1)

从头开始,确定数据结构的格式,

好像你的内部数组有格式{String, Number, String},为了找到它,我们将创建简单的正则表达式\\{([A-Za-z]+),([0-9]+),([A-Za-z]+)\\}

要使其正常工作,您可能需要添加一些修改,但是下面的代码适用于您的小案例

    String personArray ="{{Melroy,25,India},{Jack,26,USA}}";

    Pattern pattern = Pattern.compile("\\{([A-Za-z]+),([0-9]+),([A-Za-z]+)\\}"); 

    Matcher matcher = pattern.matcher(personArray);

    List<Object[]> list = new ArrayList<>();
     //using list as we don't know number of final elements, 

    int start = 0;
    while(
        matcher.find(start)){
        list.add(new Object[]{matcher.group(1),matcher.group(2),matcher.group(3)});
        start  = matcher.end();

    }

    //convert to array, to have required format
    Object[][] array = list.toArray(new Object[0][]);

    //test result
    for (Object[] arr : array)
        System.out.println(Arrays.toString(arr));