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

从Java中的查询字符串中提取参数及其值

苏彦君
2023-03-14
问题内容

所以假设我有一个像

"param1=value1&param2={"url":"http://somesite.com?someparam=somevalue&someparam1=somevalue1"}&param3=value3"

我需要它是:

param1: value1

param2: {"url":"http://somesite.com?someparam=somevalue&someparam1=somevalue1"}

param3: value3

用Java解析此问题的最佳方法是什么?到目前为止,我找不到使用标准Java库的解决方案,也不想重新发明轮子。

我试过了(但是如果我只放像我这样的查询参数,那将不起作用):

String url = "http://www.example.com/something.html?one=11111&two=22222&three=33333";
List<NameValuePair> params = URLEncodedUtils.parse(new URI(url), "UTF-8");

for (NameValuePair param : params) {
    System.out.println(param.getName() + " : " + param.getValue());
}

问题答案:

为什么不使用正则表达式之类的东西:

例如像这样的一个,".*\\?param1=(.*)&param2=(.*)&param3=(.*)$"它适用于您的url示例,这就是为什么我添加了这个.*\\?部分;)

这将适用于第一个样本("param1=value1&param2={"url":"http://somesite.com?someparam=somevalue&someparam1=somevalue1"}&param3=value3"
-> param1=(.*)&param2=(.*)&param3=(.*)$

当然,如果您的参数名称也不是您所不知道的



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

  • 如何在我的routes.jsx文件中定义一个路由来捕获参数值,这些参数值是在从服务器重定向后由Twitter的单点登录进程生成的URL中获得的? 我尝试了以下路由配置,但未捕获提到的参数:

  • 问题内容: 我有一个包含两列的表:price(int)和price_display(varchar)。 price是实际的数字价格,例如“ 9990” price_display是视觉表示,例如“ $ 9.99”或“ 9.99Fr” 我已经能够通过regexp确认两列是否匹配: price_display不是regexp格式(price / 1000,2) 但是在不匹配的情况下,我想从price_

  • 问题内容: 我有一个Java 对象。我只需要从中提取数字。我举一个例子: 我想要 是否有仅提取数字的库函数? 感谢你的回答。在尝试这些库之前,我需要知道是否必须安装任何其他库? 问题答案: 你可以使用正则表达式并删除非数字。

  • 问题内容: 我有一个字符串,我想提取字符串中的(唯一)数字序列。 示例:helloThisIsA1234Sample。我想要1234 假设数字序列在字符串中只会出现一次,但不会出现在同一位置。 (对于那些会问的人,我有一个服务器名称,需要在其中提取一个特定的数字) 我想使用Apache commomns中的StringUtils类。 谢谢! 问题答案: 使用此代码号仅包含所需的输出。

  • 我正在编写一个程序,其中用户输入以下格式的字符串: 我需要检查字符串中是否有数字 然后只提取数字。 如果我使用或,程序在字符串中找不到数字,无论输入是什么,但仅在只有数字时才有效。 我可以使用什么作为查找和提取的解决方案?