-5

假设我有一个字符串

String link = "www.abc.com"

现在我有另一个字符串

String actualLink = "www.abc.com//www.abc.com/content/detail.html"

现在我需要一种方法来检查 actualLink 字符串并删除带有字符串链接的重复部分,例如:

public String removeDuplicate(String link, String actualLink){
     ....
     return actualLink;    //so the actualLink will become to     "www.abc.com/content/detail.html"
}

有什么建议吗?谢谢

4

4 回答 4

2
actualLink = actualLink.substring(actualLink.lastIndexOf(link));
于 2013-06-24T14:37:07.210 回答
0

您的问题不是很清楚,但以下内容适用于您的示例:

String repl = actualLink.replaceAll("(.+?)/\\1", "$1");
// repl = www.abc.com/content/detail.html

编辑:为了使其更具体,您可以使用:

String rep; = actualLink.replaceAll("(" + Pattern.quote(link) + ")//\\1", "$1")
// repl = www.abc.com/content/detail.html
于 2013-06-24T14:56:35.207 回答
0

String.split()如果您的链接字符串的格式固定为“domain.com//domain.com/full/url.html”

System.out.println(actualLink.split("//")[1]);
于 2013-06-24T14:38:54.517 回答
0

重复字符串值的含义非常模糊。从您的示例中,我认为您想要删除第二个路径段,如果它等于第一个(或者可能是多个路径段)。

我建议先拆分字符串,然后对项目进行操作,例如

LinkedHashSet<String> items = new LinkedHashSet<String>(Arrays.asList(a.split("/")));
return StringUtils.join(items, "/");

或者如果只删除第一个重复项

String[] items = a.split("/");
if(items.length > 1 && items[0].equals(items[1])) {
   return StringUtils.join(items, "/", 1);
} else {
   return a;
}
于 2013-06-24T14:42:47.783 回答