java查找替换敏感词
时间: 2023-05-29 15:02:04 浏览: 229
JAVA敏感词过滤的代码
4星 · 用户满意度95%
以下是一个Java代码示例来查找和替换敏感词:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SensitiveWordFilter {
private List<String> sensitiveWords = new ArrayList<>();
private static final String REPLACEMENT = "***";
public SensitiveWordFilter(List<String> sensitiveWords) {
this.sensitiveWords = sensitiveWords;
}
public String filter(String text) {
// 创建正则表达式
StringBuilder patternBuilder = new StringBuilder();
for (String word : sensitiveWords) {
patternBuilder.append(word).append("|");
}
patternBuilder.deleteCharAt(patternBuilder.length() - 1);
String pattern = patternBuilder.toString();
// 匹配
Pattern regex = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE);
Matcher matcher = regex.matcher(text);
// 替换
String result = matcher.replaceAll(REPLACEMENT);
return result;
}
}
```
使用示例:
```java
List<String> sensitiveWords = new ArrayList<>();
sensitiveWords.add("敏感词1");
sensitiveWords.add("敏感词2");
sensitiveWords.add("敏感词3");
SensitiveWordFilter filter = new SensitiveWordFilter(sensitiveWords);
String text = "这是一段包含敏感词的文本:敏感词1,敏感词2,敏感词3。";
String result = filter.filter(text);
System.out.println(result); // 输出:"这是一段包含敏感词的文本:***,***,***。"
```
该代码创建了一个 `SensitiveWordFilter` 类,它接收一个敏感词列表并提供一个 `filter()` 方法来过滤文本中的敏感词。方法使用正则表达式和 Java 中的 `Matcher` 类来查找和替换敏感词。最后,它返回过滤后的文本。注意,在本例中,所有敏感词都被替换为相同的字符串“***”,但您可以根据需要自行更改替换字符串。
阅读全文