Here you can find the source of parseQuery(String query)
public static Map<String, String> parseQuery(String query)
//package com.java2s; /**/*ww w . j a v a 2s . c om*/ * * Copyright 2004 Protique Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * **/ import java.net.URI; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; public class Main { /** * Parsers the query string of the URI into a map of key-value pairs */ public static Map<String, String> parseQuery(URI uri) { return parseQuery(uri.getQuery()); } /** * Parsers the query string of the URI into a map of key-value pairs */ public static Map<String, String> parseQuery(String query) { Map<String, String> answer = new HashMap<String, String>(); if (query != null) { StringTokenizer iter = new StringTokenizer(query, "&"); while (iter.hasMoreTokens()) { String pair = iter.nextToken(); addKeyValuePair(answer, pair); } } return answer; } protected static void addKeyValuePair(Map<String, String> answer, String pair) { int idx = pair.indexOf('='); String name = null; String value = null; if (idx >= 0) { name = pair.substring(0, idx); if (++idx < pair.length()) { value = pair.substring(idx); } } else { name = pair; } answer.put(name, value); } }