删除重复的字符串值

时间:2013-06-24 14:33:14

标签: java string replace duplication

让我说我有一个字符串

String link = "www.abc.com"

现在我有另一个字符串

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

现在我需要一种方法来检查actualLink字符串并使用字符串链接删除dulpicate部分 例如:

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

任何建议? THX

4 个答案:

答案 0 :(得分:2)

actualLink = actualLink.substring(actualLink.lastIndexOf(link));

答案 1 :(得分:0)

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

System.out.println(actualLink.split("//")[1]);

答案 2 :(得分: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;
}

答案 3 :(得分: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