作者 Eluli Simpray

v1.0.2版本

@@ -5,6 +5,7 @@ import java.io.IOException; @@ -5,6 +5,7 @@ import java.io.IOException;
5 import java.io.InputStreamReader; 5 import java.io.InputStreamReader;
6 import java.io.Serializable; 6 import java.io.Serializable;
7 import java.nio.charset.StandardCharsets; 7 import java.nio.charset.StandardCharsets;
  8 +import java.util.Iterator;
8 import java.util.NavigableSet; 9 import java.util.NavigableSet;
9 10
10 /** 11 /**
@@ -194,7 +195,7 @@ public class SensitiveFilter implements Serializable{ @@ -194,7 +195,7 @@ public class SensitiveFilter implements Serializable{
194 */ 195 */
195 NavigableSet<StringPointer> desSet = node.words.headSet(sp.substring(i), true); 196 NavigableSet<StringPointer> desSet = node.words.headSet(sp.substring(i), true);
196 if(desSet != null){ 197 if(desSet != null){
197 - for(StringPointer word: desSet){ 198 + for(StringPointer word: desSet.descendingSet()){
198 /* 199 /*
199 * 仍然需要再判断一次,例如"色情信息哪里有?", 200 * 仍然需要再判断一次,例如"色情信息哪里有?",
200 * 如果节点只包含"色情电影"一个词, 201 * 如果节点只包含"色情电影"一个词,
@@ -32,6 +32,20 @@ public class SensitiveFilterTest extends TestCase{ @@ -32,6 +32,20 @@ public class SensitiveFilterTest extends TestCase{
32 32
33 } 33 }
34 34
  35 + public void testLogic(){
  36 +
  37 + SensitiveFilter filter = new SensitiveFilter();
  38 +
  39 + filter.put("你好");
  40 + filter.put("你好1");
  41 + filter.put("你好2");
  42 + filter.put("你好3");
  43 + filter.put("你好4");
  44 +
  45 + System.out.println(filter.filter("你好3天不见", '*'));
  46 +
  47 + }
  48 +
35 public void testSpeed() throws Exception{ 49 public void testSpeed() throws Exception{
36 50
37 PrintStream ps = new PrintStream("/data/敏感词替换结果.txt"); 51 PrintStream ps = new PrintStream("/data/敏感词替换结果.txt");