С макушки головы это будет выглядеть примерно так (предупреждение: не проверено):
String url = ...;
int s = url.indexOf("?") + 1;
while (s > 0) {
int e = url.indexOf("=", s);
String name = url.substring(s, e), value;
s = e + 1;
e = url.indexOf("&", s);
if (e < 0)
value = url.substring(s, e);
else
value = url.substring(s, e);
// process name, value
s = e;
}
Строки запроса могут быть технически разделены точкой с запятой вместо амперсанда, как name1=value1;name2=value2;...
, хотя я никогда не видел, чтобы это делалось на практике. Если это вас беспокоит, я уверен, что вы можете исправить код для него.