检查用户输入的用户名是否包含关键字
例如:String str = "胡锦涛|温家宝|";
如果 用户输入:"温家宝123"或者"家宝",也是包含关键字的

解决方案 »

  1.   


    String str="胡锦涛|温家宝|";
    String regex=".*(胡锦涛|锦涛|温家宝|家宝).*";
    System.out.println(str.matches(regex));
    这样?
      

  2.   

    //过滤的关键字数组
    String[] arr={"胡锦涛","温家宝","毛泽东","邓小平"};
    StringBuffer sb=new StringBuffer();
    sb.append("(");
    for(int i=0;i<arr.length;i++){
    sb.append(arr[i]+"|"+arr[i].substring(1,3));
    if(i!=(arr.length-1))
    sb.append("|");
    }
    sb.append(")");
    String regex=".*"+sb.toString()+".*";
    System.out.println(regex);
    //测试数据
    String[] test={"123家宝2","邓小平嘿嘿","泽东江青","胡锦涛主席"};
    for(String s:test)
    System.out.println(s.matches(regex));
      

  3.   

    关键字存持久化介质中,系统启动后读入内存。加过滤器,对每一提交,用正则进行匹配。http://bianku.javaeye.com/blog/401509
      

  4.   

         你用hash技术做  那样很简单  你用正则表达式抓关键字,然后往hashmap上的key放 
      

  5.   

    做个关键字 字典,遍历字典for exampleString[] dic = {
        "胡锦涛","锦涛","老胡",
        "江泽民","泽民","老江",
        "邓小平","小平","老邓",
        "毛泽东","泽东","老毛"
    };String checkString = "温家宝123或者家宝";
    boolean exist = false;
    for (String keyword : dic) {
        if (checkString.indexOf(kwyword) >= 0) {
            exist = true;
            break;
        }
    }
    if (exist) {
        //do something
    }
      

  6.   


    /**
     * 字符过滤
     * @author Administrator
     *
     */
    public class WordsFilter { private static final String[] words = { 
                       "胡锦涛","锦涛","老胡",
                       "江泽民","泽民","老江",
                       "邓小平","小平","老邓",
                       "毛泽东","泽东","老毛"
    /**
     * 初始化需要过滤掉*的数量
     */
    private static String initStr(int n) {
    StringBuffer sb = new StringBuffer();
    for (int i = 0; i < n; i++) {
    sb.append('*');
    }
    return sb.toString();
    } /**
     * 过滤关键词
     * 
     * @param str
     * @return
     */
    public static String filterWord(String str) {
    if (str == null || "".equals(str) || str.length() < 1) {
    return "";
    }
    for (int i = 0; i < words.length; i++) {
    String key = words[i];
    int keyLength = key.length();
    str = str.replaceAll(key, initStr(keyLength));
    }
    return str;
    } public static void main(String[] args) {
    String str = "我是胡锦涛,H动漫";
    // String str1 = "";
    String newStr = WordsFilter.filterWord(str);
    System.out.println("newStr = " + newStr);
    if(newStr == null){ 
    System.out.println("newStr is null ");
    }
    if("".equals(newStr)){ 
    System.out.println("newStr is '' ");
    }
    }}
      

  7.   

    哎 ,我回帖的时候因为我的那个过滤字符中含有非法字符,结果就不让我回帖,无奈就只好借用LS的过滤字符一用了,  看看人家csdn的这个就做的很不错的吗……呵呵!!!!!!!!!!