如何过滤字符串?
String[] filterTags={<A>,<BC>,<A,<B};
filterTags 可以包含更多值,它可以包含一些字符串、数字或任何可以动态增长的内容
String name="<A><ABC><B><B"
我想要的是从filterTags数组中删除值但保留<ABC>
因为它来自名称(字符串)
if (name.contains(filterTags[i])and ???)
我只需要一个简单的检查,如果名称(字符串)中包含filterTags值,则将删除它,但保持原样
提前谢谢您
最佳答案
好吧,你可以使用正则表达式来做到这一点:
String filtered = name.replaceAll("(<A>|<BC>|<A|<B)", "");
// filtered == "<ABC>"
现在的问题是创建该正则表达式字符串。您可以对其进行硬编码,因为看起来这就是您正在对数组执行的操作,或者您可以执行以下操作:
StringBuilder sb = new StringBuilder("(");
for (String token : filterTags) {
sb.append(token);
sb.append('|');
}
sb.deleteCharAt(sb.length() - 1); // Remove the last "|"
sb.append(')');
String regex = sb.toString();
请注意,只有当您的过滤器标记不包含任何正则表达式特殊字符时,这才有效
关于java - 如何过滤字符串但保留一些标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20249053/