如何从String创建String []数组?

时间:2016-05-21 13:32:31

标签: java arrays string

我在变量 coords 上有一个String,它有一个String数组的值,但它不是一个数组(toString的结果)。

String coords = "[[126,224],[255,232],[270,332],[106,444]]";

如何从此String创建String数组? 数组没有#valueOf(据我所知),你不能轻易拆分字符。

编辑:我正在寻找一个String数组,其中包含四个字符串作为自己的条目。例如。 “126,224”,“255,322”..

3 个答案:

答案 0 :(得分:3)

实现这一目标的最简单方法之一是:

String[] array = coords.replaceAll("\\[\\[", "").replaceAll("\\]\\]", "").split("\\],\\[");

上述代码用空字符替换所有[[]],然后按],[拆分。

答案 1 :(得分:2)

使用Stream API解决方案而无需替换

Arrays.asList(coords.split("\\[\\[|]]|],\\[")).stream().filter(s -> !s.isEmpty()).forEach(System.out::println);

或公共案例

Arrays.asList(coords.split("\\[\\[|]]|],\\[")).stream()
    .filter(s -> !s.isEmpty()).forEach(s -> {
    //do whatever you want
});

答案 2 :(得分:0)

寻找这样的东西?

public class Tmp {
    public static void test() {
        String coords = "[[126,224],[255,232],[270,332],[106,444]]";
        String arr[];
        if (coords.length() < 4) {
            arr = null;
        } else {
            arr = coords.substring(2, coords.length() - 2).split("\\],\\[");
        }
        for (String str : arr) {
            System.out.printf("%s\n", str);
        }
    }

    public static void main(String[] args) {
        test();
    }
}