对于给定的单词,我想搜索至少 3 次出现在彼此旁边的所有子字符串,并将它们全部替换为一个。当子字符串只有一个字符时,我知道如何执行此操作。例如,下面的代码为输入字符串“Bahhhhhhh”返回“Bah”:

String term = "Bahhhhhhh";
term = term.replaceAll("(.)\\1{2,}", "$1");

但是,我需要一个更通用的模式将“Bahahahaha”转换为“Baha”。

最佳答案

    String[] terms = { "Bahhhhhhh", "Bahahahaha" };
    for (String term : terms) {
        System.out.println(term.replaceAll("(.+?)\\1{2,}", "$1"));
    }

输出:
Bah
Baha

关于java - 用一个副本替换一系列子字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10934832/

10-16 13:25