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)
但我知道我们无法扩展数组.这可以做什么?
谢谢!
split采用一个参数的方法会丢弃尾随的空标记.这里,这导致params只有一个长度.
使用split也接受limit参数的方法,并传递负数limit以确保获得一个长度与实际存在的标记数相匹配的数组:2.
String[] params = splitS1[i].split("=", -1);
Run Code Online (Sandbox Code Playgroud)
然后你不必创建另一个数组; 2假设有=礼物,你会得到一个大小的数组.
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |