Uri uri = Uri.parse(url);
url拼接参数替换对应的值
public static Uri replaceUriParameter(Uri uri, String key, String newValue) {
final Set<String> params = uri.getQueryParameterNames();
final Uri.Builder newUri = uri.buildUpon().clearQuery();
for (String param : params) {
newUri.appendQueryParameter(param,
param.equals(key) ? newValue : uri.getQueryParameter(param));
}
return newUri.build();
}
url解析拼接参数为Map
public static Map<String, String> parseSourceParam(Uri uri) {
Map<String, String> param = new HashMap();
String query = NTool.getQuery(uri.toString());
if (!TextUtils.isEmpty(query)) {
String[] ret = query.split("&");
if (ret != null) {
String[] var4 = ret;
int var5 = ret.length;
for(int var6 = 0; var6 < var5; ++var6) {
String s = var4[var6];
String[] kv = s.split("=");
if (kv != null && kv.length == 2) {
param.put(kv[0], kv[1]);
}
}
}
}
return param;
}
public static String appendParam(String url, Map<String, String> param) {
if (param != null && param.size() != 0) {
StringBuilder sb = new StringBuilder();
Iterator it = param.entrySet().iterator();
while(it.hasNext()) {
Map.Entry<String, String> entry = (Map.Entry)it.next();
sb.append((String)entry.getKey()).append("=").append((String)entry.getValue()).append("&");
}
String paramStr = sb.toString();
if (paramStr.endsWith("&")) {
paramStr = paramStr.substring(0, paramStr.length());
}
return appendQuery(url, paramStr);
} else {
return url;
}
}
public static String appendQuery(String url, String query) {
if (TextUtils.isEmpty(query)) {
return url;
} else {
return url.contains("?") ? url + "&" + query : url + "?" + query;
}
}
解析Url拼接参数放入到Intent中
public static void parseUrlParam(String query, Intent intent) {
if (!TextUtils.isEmpty(query)) {
String[] ret = query.split("&");
if (ret != null && ret.length > 0) {
String[] var3 = ret;
int var4 = ret.length;
for(int var5 = 0; var5 < var4; ++var5) {
String kv = var3[var5];
String[] kvs = splitFirst(kv, "=");
if (kvs != null && kvs.length == 2) {
intent.putExtra(kvs[0], kvs[1]);
}
}
}
}
}