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
			| 
								 
											3 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);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |