0

可能重复:
如何从给定的 url 中提取参数

我试图从这个 url 中的参数中检索数字:

htt://tesing12/testds/fdsa?communityUuid=45352-32452-52

我试过这个没有运气:

^.*communityUuid=

你能帮忙的话,我会很高兴。

4

2 回答 2

4

我建议不要使用简单的字符串操作路线。它更冗长,更容易出错。您不妨从内置类中获得一些帮助,然后利用您正在使用 URL(以“&”分隔的参数)的知识来指导您的实现:

String queryString = new URL("http://tesing12/testds/fdsa?communityUuid=45352-32452-52").getQuery();

String[] params = queryString.split("&");

String communityUuid = null;
for (String param : params) {
    if (param.startsWith("communityUuid=")) {
        communityUuid = param.substring(param.indexOf('=') + 1);
    }
}

if (communityUuid != null) {
    // do what you gotta do
}

这使您可以检查 URL 的格式是否正确,并避免类似命名参数可能引起的问题(字符串操作路由将报告“abc_communityUuid”和“communityUuid”的值)。

此代码的一个有用扩展是在您迭代“参数”时构建一个映射,然后在映射中查询您想要的任何参数名称。

于 2012-12-03T20:52:31.657 回答
3

我看不出有任何理由使用正则表达式。

我会这样做:

String token = "communityUuid=";
String url = "htt://tesing12/testds/fdsa?communityUuid=45352-32452-52";
int index = url.indexOf(token) + token.length();
String theNumbers = url.substring(index);

笔记:

您可能还需要寻找下一个参数:

String token = "communityUuid=";
String url = "htt://tesing12/testds/fdsa?communityUuid=45352-32452-52";
int startIndex = url.indexOf(token) + token.length();
// here's where you might want to use a regex
String theNumbers = url.substring(startIndex).replaceAll("&.*$", "");
于 2012-12-03T20:28:30.763 回答