我想写一个正则表达式替换重复的字符串,无论区分大小写

时间:2017-10-23 11:56:24

标签: java regex

例如

String str="**Hello bye bye given given world world**"

应该返回

"**Hello bye given world**".

1 个答案:

答案 0 :(得分:0)

您可以使用空格拆分字符串,并通过仅将非重复值存储在列表中来比较字符串与之前的字符串出现次数。

代码如下。

import java.util.ArrayList;
import java.util.List;

public class Test2 {
    private static final String SPACE = " ";

    public static void main(String[] args) {
        System.out.println(replaceDuplicateString("**Hello Bye bye given given world world**"));
    }

    public static String replaceDuplicateString(String input) {
        List<String> addedList = new ArrayList<>();
        StringBuilder output = new StringBuilder();
        for (String str: input.split(SPACE)) {
            if (!addedList.contains(str.toUpperCase())) {
                output.append(str);
                output.append(' ');
                addedList.add(str.toUpperCase());
            }
        }
        return output.toString().trim();
    }
}

这将打印

Hello bye given world

如果将输入更改为

,该怎么办?
**Hello bye bye given given world world**

输出将是

**Hello bye given world world**

由于world不是world**的副本。