String resultArr[] = response.split("&");
String[] values = resultArr;
String name[] = new String[values.length/2];
for(int i = 0;i<values.length-1;i++)
{
if(i%2==0)
{
name[i] = values[i];
}
}
答案 0 :(得分:4)
这是问题所在:
name[i] = values[i];
您的name
数组只是values
数组的一半,但您尝试使用相同的索引。我怀疑你想要:
name[i / 2] = values[i];
或者在我看来更可读:
// Note consistency of naming and how the type is specified
String[] namesAndValues = response.split("&");
if (namesAndValues.length % 2 != 0)
{
throw new IllegalArgumentException("Uneven name/value pair length");
}
String[] values = new String[namesAndValues.length / 2];
String[] names = new String[values.length];
for (int i = 0; i < values.length; i++)
{
names[i] = namesAndValues[i * 2];
values[i] = namesAndValues[i * 2 + 1];
}
答案 1 :(得分:1)
您所做的基本上是将所有偶数值存储到名称中 但与此同时,您只将其存储在名称的偶数值中。 试试这个: -
if(i%2==0)
{
name[i/2] = values[i];
}
答案 2 :(得分:0)
您的name
数组大小为values
的一半,并且您正在迭代length
values
并将值分配给name
数组。
罪犯是String[] name = new String[values.length/2];
&amp; name[i] = values[i];
如果您的response
字符串包含一个&
,那么您的代码就可以使用,但是对于&
容器中response
的更多数量,它会引发index out of bound
例外。
答案 3 :(得分:-2)
尝试更改String [] values = resultArr; 对此 String [] values = resultArr [];