我在变量 coords 上有一个String,它有一个String数组的值,但它不是一个数组(toString的结果)。
String coords = "[[126,224],[255,232],[270,332],[106,444]]";
如何从此String创建String数组? 数组没有#valueOf(据我所知),你不能轻易拆分字符。
编辑:我正在寻找一个String数组,其中包含四个字符串作为自己的条目。例如。 “126,224”,“255,322”..
答案 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();
}
}