如何解析表示数组数组的字符串?

时间:2017-11-03 11:38:17

标签: java arrays string

我从网址得到一个结果:

[[1509321600000,35166.44],[1509408000000,35224.31],[1509580800000,35234.60]]

它是一个String,我想转换为一个数组数组。

是否存在功能?或者我是否必须使用爆炸功能并手动创建阵列?

2 个答案:

答案 0 :(得分:2)

正如评论中所建议的那样,由于字符串是一个有效的JSON数组声明,因此将其解析为JSON可能是最简单的,也是将来最容易维护的。使用google/gson库代码如下所示:

String string = "[[1509321600000,35166.44],[1509408000000,35224.31],[1509580800000,35234.60]]";
String[][] array = new Gson().fromJson(string, String[][].class);

答案 1 :(得分:0)

默认情况下没有提供任何功能,但您可以使用Streams执行以下操作(如果您的String具有您指定的格式):

String[][] a = 
    Arrays.stream(s.substring(2, s.length()-2).split("\\],\\["))
        .map(sub -> sub.split(","))
        .toArray(String[][]::new);

在这里,你切断了第一个和最后两个括号(.substring(2, s.length()-2)),然后拆分你的字符串(.split("\\],\\["))(这会产生一个格式为字符串的数组" asdf,fdsa& #34;

Array.stream创建一个流,map将这些字符串拆分为数组,然后您可以使用toArray方法收集它们。

打印此阵列数组会导致:

1509321600000   35166.44    
1509408000000   35224.31    
1509580800000   35234.60