You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.8 KiB
64 lines
1.8 KiB
2 years ago
|
package com.ynxbd.common.helper.cache;
|
||
|
|
||
|
import com.ynxbd.common.helper.common.FileHelper;
|
||
|
|
||
|
import java.util.List;
|
||
|
|
||
|
// 敏感词汇过滤
|
||
|
public class TextCache {
|
||
|
// 缓存
|
||
|
private static List<String> textList;
|
||
|
|
||
|
private synchronized static void getTextList() {
|
||
|
if (textList == null) {
|
||
|
textList = FileHelper.readLineToList("wx-text.text");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
public static String textFilter(String text) {
|
||
|
if (text == null || "".equals(text)) {
|
||
|
return null;
|
||
|
}
|
||
|
if (textList == null) { // 初始化
|
||
|
getTextList();
|
||
|
}
|
||
|
if (textList == null) {
|
||
|
return text;
|
||
|
}
|
||
|
|
||
|
if (textList.size() == 0) {
|
||
|
return text;
|
||
|
}
|
||
|
StringBuilder sb;
|
||
|
int len;
|
||
|
for (String s : textList) {
|
||
|
len = s.length();
|
||
|
if (text.contains(s)) {
|
||
|
if (len > 3) {
|
||
|
sb = new StringBuilder();
|
||
|
for (int i = 0; i < len; i++) {
|
||
|
sb.append("*");
|
||
|
}
|
||
|
text = text.replaceAll(s, "*");
|
||
|
} else {
|
||
|
if (len == 1) {
|
||
|
text = text.replaceAll(s, "*");
|
||
|
} else if (len == 2) {
|
||
|
text = text.replaceAll(s, "**");
|
||
|
} else if (len == 3) {
|
||
|
text = text.replaceAll(s, "***");
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return text;
|
||
|
}
|
||
|
|
||
|
public static void main(String[] args) {
|
||
|
String s = textFilter("批次编号:20043945妇科材料库“一次性使用无菌阴道扩张器中号A型轴转式”的库存为2已不足执行2个过程失败!");
|
||
|
System.out.println(s);
|
||
|
}
|
||
|
|
||
|
}
|