자바 민감 어 필터
package test.java.lang;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
 * @title KeywordFilter
 * @description TODO 
 * @author 
 * @date 2014-4-17
 * @version 1.0
 */
public class KeywordFilter {
    /**      
     * { ={isEnd=0,  ={isEnd=1}},  ={isEnd=0,  ={isEnd=0,  ={isEnd=1},  ={isEnd=0,  ={isEnd=1}}}}}
     * */
    private HashMap keysMap = new HashMap();
    /**
     *      
     * @param keywords
     */
    public void addKeywords(List keywords) {
        for (int i = 0; i < keywords.size(); i++) {
            String key = keywords.get(i).trim();
            HashMap nowhash = keysMap;//        
            for (int j = 0; j < key.length(); j++) {
                char word = key.charAt(j);
                Object wordMap = nowhash.get(word);
                if (wordMap != null) {
                    nowhash = (HashMap) wordMap;
                } else {
                    HashMap newWordHash = new HashMap();
                    newWordHash.put(\"isEnd\", \"0\");
                    nowhash.put(word, newWordHash);
                    nowhash = newWordHash;
                }
                if (j == key.length() - 1) {
                    nowhash.put(\"isEnd\", \"1\");
                }
            }
        }
    }
    /** 
     *         begin        keyword  ,
     *     ,   0
     *       keyword ,    ,    isEnd = 1,     keyword   , 
     */
    private int checkKeyWords(String txt, int begin) {
        HashMap nowhash = keysMap;
        int res = 0;
        for (int i = begin; i < txt.length(); i++) {
            char word = txt.charAt(i);
            Object wordMap = nowhash.get(word);//        HashMap
            if (wordMap == null) {
                return 0;//          HashMap,return 0
            }
            res++;//        HashMap  null,          ,+1
            nowhash = (HashMap) wordMap;//    HashMap        HashMap
            if (((String) nowhash.get(\"isEnd\")).equals(\"1\")) {//              ,    
                return res;
            } else {
                continue;
            }
        }
        return res;
    }
    /** 
     *   txt        
     */
    public boolean isContentKeyWords(String txt) {
        for (int i = 0; i < txt.length(); i++) {
            int len = checkKeyWords(txt, i);
            if (len > 0) {
                return true;
            }
        }
        return false;
    }
    /** 
     *   txt        
     */
    public List getTxtKeyWords(String txt) {
        List list = new ArrayList();
        int l = txt.length();
        for (int i = 0; i < l;) {
            int len = checkKeyWords(txt, i);
            if (len > 0) {
                String tt = txt.substring(i, i + len);
                list.add(tt);
                i += len;
            } else {
                i++;
            }
        }
        return list;
    }
    /** 
     *          
     * */
    public void initfiltercode() {
        List keywords = new ArrayList();
        keywords.add(\"   \");
        keywords.add(\"    \");
        keywords.add(\"  \");
        this.addKeywords(keywords);
    }
    public static void main(String[] args) throws IOException {
        KeywordFilter filter = new KeywordFilter();
        filter.initfiltercode();
        String txt = \"  ,         ,   ,\";
        boolean boo = filter.isContentKeyWords(txt);
        System.out.println(boo);
        List set = filter.getTxtKeyWords(txt);
        System.out.println(\"        :\" + set);
    }
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.