在分隔符管道之间匹配文本并将其删除并保持分隔符完整



我的问题是我有一个字符串,每四个字符后面有一个分隔符。我需要将特定的单词与分隔符之间的这四个字符匹配并删除它。

例如:String txt = "ABCD|BABA|SSRV|LKGD"

现在检查字符串中BABA, DGHT, LKGD, ADKC,并返回减去这些项的字符串

因为我们找到了BABA和LKGD的匹配。所以结果应该是如下

Result: txt = "ABCD|SSRV"

有什么有效的方法吗?

您可以使用:

String str = "ABCD|BABA|SSRV|LKGD";
String repl = str.replaceFirst("\|BABA(?=\||$)", "");
//=> ABCD|SSRV|LKGD

同时删除两个搜索字符串:

String str = "ABCD|BABA|SSRV|LKGD";
String repl = str.replaceAll("\|(BABA|LKGD)(?=\||$)", "");
//=> ABCD|SSRV

使用番石榴,但可读性很好。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.google.common.base.Joiner;
public class test {
    public static void main(String... args) {
        String txt = "ABCD|BABA|SSRV|LKGD";
        List<String> toBeRemoved = Arrays.asList(new String[] { "BABA", "DGHT","LKGD", "ADKC" });
        List<String> data = new ArrayList<>(Arrays.asList(txt.split("\|")));
        data.removeAll(toBeRemoved);
        System.out.println(Joiner.on("|").join(data));
    }
}

最新更新