java 对一个字符串去重,即去掉字符串内重复元素

String str ="abc|efa|abc|efa|abc"; 
String str1 = str.replaceAll("(?s)(.)(?=.*\1)", ""); 
System.out.println(str1); 

其中:("(?s)(.)(?=.*\1)解释如下; 
(?s) 开启单行模式 DOTALL 让. 号匹配任意字符 
(.) 任意字符 并捕获在第一组 
(?=.*1) 这是断言, 表示后面内容将是 任意个字符加上第一组所捕获的内容 

原文地址:https://www.cnblogs.com/Esquecer/p/8439818.html