Url中字段参数处理,是否包含特定参数,获取参数的值,替换参数值

判断URL中是否有某一特定参数:

public static boolean hasParameter(String urlString, String parameterName) {
        try {
            URL url = new URL(urlString);
            String query = url.getQuery();
            if (query != null) {
                String[] params = query.split("&");
                for (String param : params) {
                    String[] keyValue = param.split("=");
                    if (keyValue.length > 0) {
                        String key = URLDecoder.decode(keyValue[0], "UTF-8");
                        if (key.equals(parameterName)) {
                            return true;
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

获取特定参数的值:

 public static String getParameterValue(String urlString, String parameterName) {
        try {
            URL url = new URL(urlString);
            String query = url.getQuery();
            if (query != null) {
                String[] params = query.split("&");
                for (String param : params) {
                    String[] keyValue = param.split("=");
                    if (keyValue.length > 1) {
                        String key = URLDecoder.decode(keyValue[0], "UTF-8");
                        String value = URLDecoder.decode(keyValue[1], "UTF-8");
                        if (key.equals(parameterName)) {
                            return value;
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

修改特定参数的值:

 public static String modifyParameterValue(String urlString, String parameterName, String newValue) {
        try {
            URL url = new URL(urlString);
            String query = url.getQuery();
            if (query != null) {
                String[] params = query.split("&");
                StringBuilder modifiedQuery = new StringBuilder();
                for (String param : params) {
                    String[] keyValue = param.split("=");
                    if (keyValue.length > 0) {
                        String key = keyValue[0];
                        if (key.equals(parameterName)) {
                            String encodedValue = URLEncoder.encode(newValue, "UTF-8");
                            modifiedQuery.append(key).append("=").append(encodedValue).append("&");
                        } else {
                            modifiedQuery.append(param).append("&");
                        }
                    }
                }
                if (modifiedQuery.length() > 0) {
                    modifiedQuery.deleteCharAt(modifiedQuery.length() - 1); // Remove the trailing '&'
                    String modifiedUrlString = urlString.replace(query, modifiedQuery.toString());
                    return modifiedUrlString;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return urlString;
    }

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值