我的String
看起来像"(doc1| doc1| provid| geestt| stable)"
。它代表一个数组,我想从中删除任何重复项,以便doc1只出现一次。我怎么能这样做?
答案 0 :(得分:0)
String s = "(doc1|doc1|provid|geestt|provid|stable)";
s = s.replaceAll("\\b(\\w+)\\|(?=.*\\b\\1\\b)", "");
System.out.println(s);
// (doc1|geestt|provid|stable)
这使用\\w
作为单词char;可能你需要[^|)]
:不是分隔符之一。 0-char宽\\b
用于检测适合的字边界。
此模式使用包含(?= ... )
1个 st 匹配的\\1
组的前瞻()
:单词。
P.S。
Set<String>
似乎是一个更合适的数据结构。