Java 从url中提取参数值 公共静态哈希表parseUrlString(字符串url){ Hashtable参数=新的Hashtable(); 列表参数=null; 试一试{ params=URLEncodedUtils.parse(新的URI(url),“UTF-8”); for(NameValuePair参数:params){ if(param.getName()!=null&¶m.getValue()!=null) parameter.put(param.getName(),param.getValue()); } }捕获(URISyntaxException e){ e、 printStackTrace(); } 返回参数; }

Java 从url中提取参数值 公共静态哈希表parseUrlString(字符串url){ Hashtable参数=新的Hashtable(); 列表参数=null; 试一试{ params=URLEncodedUtils.parse(新的URI(url),“UTF-8”); for(NameValuePair参数:params){ if(param.getName()!=null&¶m.getValue()!=null) parameter.put(param.getName(),param.getValue()); } }捕获(URISyntaxException e){ e、 printStackTrace(); } 返回参数; },java,android,Java,Android,上述方法适用于我将参数名称和值提取到哈希表中,但在Api 21+中,NameValuePair和URLEncodedUtils已被弃用,因此我可以用什么最佳方法替换此方法?您可以尝试ContentValues public static Hashtable parseUrlString(String url) { Hashtable parameter = new Hashtable(); List<NameValuePair> params = null;

上述方法适用于我将参数名称和值提取到哈希表中,但在Api 21+中,NameValuePair和URLEncodedUtils已被弃用,因此我可以用什么最佳方法替换此方法?

您可以尝试ContentValues

public static Hashtable parseUrlString(String url) {
    Hashtable parameter = new Hashtable();
    List<NameValuePair> params = null;
    try {
        params = URLEncodedUtils.parse(new URI(url), "UTF-8");
        for (NameValuePair param : params) {
            if (param.getName() != null && param.getValue() != null)
                parameter.put(param.getName(), param.getValue());
        }
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
    return parameter;
}

在Android中,您永远不应该使用现在已经不推荐使用的。一个好的替代方法是使用该类:使用
getQueryParameterNames()
检索查询参数键,然后对它们进行迭代,并使用
getQueryParameter()
检索每个值。您可以使用android.net.Uri

for (ContentValues param : params) {
            if (param.getName() != null && param.getValue() != null)
                parameter.put(param.getName(), param.getValue());
        }

它有getQueryParameterNames()和uri.getQueryParameter(parameterNameString)

已经回答了,但这里是写出来的方法

Uri uri=Uri.parse(url);
公共静态HashMap getQueryString(字符串url){
Uri=Uri.parse(url);
HashMap=newHashMap();
for(字符串参数名:uri.getQueryParameterNames()){
if(paramName!=null){
字符串paramValue=uri.getQueryParameter(paramName);
if(paramValue!=null){
map.put(paramName,paramValue);
}
}
}
返回图;
}
试试:


谢谢你的回答还有一个问题我也不赞成:(谢谢你的回答谢谢你的回答:)
public static HashMap<String, String> getQueryString(String url) {
    Uri uri= Uri.parse(url);

    HashMap<String, String> map = new HashMap<>();
    for (String paramName : uri.getQueryParameterNames()) {
        if (paramName != null) {
            String paramValue = uri.getQueryParameter(paramName);
            if (paramValue != null) {
                map.put(paramName, paramValue);
            }
        }
    }
    return map;
}
 Uri uri = Uri.parse(yourStrUrl);
 String paramValue = uri.getQueryParameter("yourParam");