让我说我有一个字符串
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
答案 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