Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从字符串创建字符串[]数组?_Java_Arrays_String - Fatal编程技术网

Java 如何从字符串创建字符串[]数组?

Java 如何从字符串创建字符串[]数组?,java,arrays,string,Java,Arrays,String,我在变量coords上有一个字符串,它的值是字符串数组,但它不是数组(toString的结果) 如何从该字符串创建字符串数组? 数组没有#值of(据我所知),因此无法轻松拆分字符 编辑:我正在寻找一个字符串数组,其中包含四个字符串作为它们自己的条目。例如“126224”、“255322”。正在寻找类似的东西吗 public class Tmp { public static void test() { String coords = "[[126,224],[255,23

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

如何从该字符串创建字符串数组? 数组没有#值of(据我所知),因此无法轻松拆分字符


编辑:我正在寻找一个字符串数组,其中包含四个字符串作为它们自己的条目。例如“126224”、“255322”。

正在寻找类似的东西吗

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();
    }
}
公共类Tmp{
公共静态无效测试(){
字符串坐标=“[126224]、[255232]、[270332]、[106444]”;
字符串arr[];
if(坐标长度()<4){
arr=null;
}否则{
arr=coords.substring(2,coords.length()-2);
}
用于(字符串str:arr){
System.out.printf(“%s\n”,str);
}
}
公共静态void main(字符串[]args){
test();
}
}

在找这样的东西吗

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();
    }
}
公共类Tmp{
公共静态无效测试(){
字符串坐标=“[126224]、[255232]、[270332]、[106444]”;
字符串arr[];
if(坐标长度()<4){
arr=null;
}否则{
arr=coords.substring(2,coords.length()-2);
}
用于(字符串str:arr){
System.out.printf(“%s\n”,str);
}
}
公共静态void main(字符串[]args){
test();
}
}

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

String[]array=coords.replaceAll(“\\[\\[”,”).replaceAll(“\\]\\]”,“”)。split(“\\\]”,\\\[”);

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

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

String[]array=coords.replaceAll(“\\[\\[”,”).replaceAll(“\\]\\]”,“”)。split(“\\\]”,\\\[”);

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

解决方案使用流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
});

具有流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
});

String#split(String)
?如果您希望立即转换为String[],我可以问一下为什么要将其实例化为String吗?@CássioMazzochiMolin您必须给出一个正则表达式。@ScottStainton在代码中,我实际上并没有初始化字符串,它是从第三方库中获得的,该库返回一个字符串对象。数组应该是什么样子?
String#split(String)
?如果您希望立即转换为String[]?@CássioMazzochiMolin您必须给出一个正则表达式。@ScottStainton在代码中,我并没有实际启动字符串,它是从第三方库获得的,该库返回一个字符串对象。数组应该是什么样子的?