我的问题是我有一个字符串,每四个字符后面有一个分隔符。我需要将特定的单词与分隔符之间的这四个字符匹配并删除它。
例如: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));
}
}