最近工作经常会碰到处理 URL ,需要获取 URL 中参数 Key 的值。
比如下面这样一个 URL
http://127.0.0.1:8800/user/designer?userId=38&entry=1&appKey=340506427690999808
获取参数的值
利用下面的方法方法将 URL 的参数和值存到 Map
public static Map<String, String> splitQuery(URL url) throws UnsupportedEncodingException {
Map<String, String> query_pairs = new LinkedHashMap<String, String>();
String query = url.getQuery();
String[] pairs = query.split("&");
for (String pair : pairs) {
int idx = pair.indexOf("=");
query_pairs.put(URLDecoder.decode(pair.substring(0, idx), "UTF-8"), URLDecoder.decode(pair.substring(idx + 1), "UTF-8"));
}
return query_pairs;
}
获取key
Map<String, String> stringMap = splitQuery(url);
System.out.println(stringMap.get("userId"));
System.out.println(stringMap.get("entry"));
System.out.println(stringMap.get("appKey"));