如果它不存在,请创建一个新的数组索引

Dam*_*men 1 java arrays string

说我有一个像下面的字符串

String s1 = "test1=1&test2=2&test3=&test4=4";
Run Code Online (Sandbox Code Playgroud)

请注意字符串S1中的test3参数,因为它没有任何值

String [] splitS1 = s1.split("\\&");
for (int i = 0; i < splitS1.length; i++) {
    String[] params = splitS1[i].split("=");
    System.out.println("Attribute:"+params[0]+"   Value : "+params [1]);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码抛出java.lang.ArrayIndexOutOfBoundsException:1,因为String s1中的test3没有任何值,因此params [1]对test3无效.

我试过这样做

                if(params.length == 1) {
                    params[1] = "";
                }
Run Code Online (Sandbox Code Playgroud)

但我知道我们无法扩展数组.这可以做什么?

谢谢!

rge*_*man 7

split采用一个参数的方法会丢弃尾随的空标记.这里,这导致params只有一个长度.

使用split也接受limit参数方法,并传递负数limit以确保获得一个长度与实际存在的标记数相匹配的数组:2.

String[] params = splitS1[i].split("=", -1);
Run Code Online (Sandbox Code Playgroud)

然后你不必创建另一个数组; 2假设有=礼物,你会得到一个大小的数组.