Java scriptlet删除由|分隔的字符串中的重复项(定界符)

时间:2014-08-14 10:23:02

标签: java scriptlet

我的String看起来像"(doc1| doc1| provid| geestt| stable)"。它代表一个数组,我想从中删除任何重复项,以便doc1只出现一次。我怎么能这样做?

1 个答案:

答案 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>似乎是一个更合适的数据结构。