方案
在 Java 中,你可以利用 URLEncoder
和 URLDecoder
来对 URL 字符串进行编解码,然后使用 String.split()
方法或者使用 正则表达式
来从 URL 字符串中获取参数。
代码示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
public static String getParameterFromUrl(String url, String key) { String[] params = url.split("\\?"); String[] queryParams = params[1].split("&");
String result = ""; for (String queryParam : queryParams) { String[] param = queryParam.split("="); if (param[0].equals(key)) { result = param[1]; break; } }
return result; }
|
注意:上面的参数值有 =
会有 bug,建议使用下面的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
public static String getParameterFromUrl(String url, String key) { HashMap<String, String> urlMap = new HashMap<String, String>(); String queryString = StringUtils.substringAfter(url, "?"); for (String param : queryString.split("&")) { urlMap.put(StringUtils.substringBefore(param, "="), StringUtils.substringAfter(param, "=")); } return urlMap.get(key); }
|