当前位置: 首页 > 面试题库 >

如何从给定的URL中提取参数

权烨磊
2023-03-14
问题内容

在Java中,我有:

String params = "depCity=PAR&roomType=D&depCity=NYC";

我想获取depCity参数值(PAR,NYC)。

所以我创建了正则表达式:

String regex = "depCity=([^&]+)";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(params);

m.find()返回假。m.groups()正在返回IllegalArgumentException

我究竟做错了什么?


问题答案:

它不必是正则表达式。由于我认为没有标准的方法可以处理此问题,因此我使用的是从某处复制的内容(可能有一些修改):

public static Map<String, List<String>> getQueryParams(String url) {
    try {
        Map<String, List<String>> params = new HashMap<String, List<String>>();
        String[] urlParts = url.split("\\?");
        if (urlParts.length > 1) {
            String query = urlParts[1];
            for (String param : query.split("&")) {
                String[] pair = param.split("=");
                String key = URLDecoder.decode(pair[0], "UTF-8");
                String value = "";
                if (pair.length > 1) {
                    value = URLDecoder.decode(pair[1], "UTF-8");
                }

                List<String> values = params.get(key);
                if (values == null) {
                    values = new ArrayList<String>();
                    params.put(key, values);
                }
                values.add(value);
            }
        }

        return params;
    } catch (UnsupportedEncodingException ex) {
        throw new AssertionError(ex);
    }
}

因此,当您调用它时,将获得所有参数及其值。该方法处理多值参数,因此使用List<String>而不是String,并且在您的情况下,您需要获取第一个列表元素。



 类似资料:
  • 问题内容: 我有这样的网址: 如何获取章节和帖子的参数值​​? 我的URL在Chapter参数的值中包含“&”。 问题答案: 您可以在Android中使用Uri类来完成此操作; https://developer.android.com/reference/android/net/Uri.html 这样,您甚至可以从查询参数中获取特定元素;

  • 问题内容: 用户可以在我的网站上使用HTML表单输入URL,因此他们可以输入以下内容:http : //www.example.com?test=123&random=abc,可以是任何内容。我需要提取某个查询参数的值,在本例中为“ test”(值123)。有没有办法做到这一点? 问题答案: 你可以用与这样的: 允许将URL分为不同的部分(方案,主机,路径,查询等);在这里,我们使用它仅获取查询(

  • 你好,我来自从URL获取JSON对象 我试着去买一顶帽子- 有人能告诉我我做错了什么吗?

  • 我想在单击按钮时提取值。从和行和列中提取值。只是想要一个粗略的想法如何做提取和保存不同变量的值。我想在“保存”按钮下执行这些保存操作。

  • 问题内容: 给定一个URL,我想提取域名(它不应包含“ www”部分)。网址可以包含h​​ttp / https。这是我编写的Java代码。尽管它似乎运行良好,但是有没有更好的方法或有一些极端的情况可能会失败。 输入:http : //google.com/blah 输出:google.com 问题答案: 如果要解析URL,请使用java.net.URI。 java.net.URL有很多问题-它的

  • 如何在Vue中获取查询参数。js? 例如,。 找不到获取的方法,或者我需要为此使用纯JS或一些库吗?