「java过滤字」java过滤字符

博主:adminadmin 2022-12-09 00:36:09 79

本篇文章给大家谈谈java过滤字,以及java过滤字符对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java如何快速过滤掉某个字符串包含的最长的一个词

java快速过滤掉某个字符串包含的最长的一个词方法:把敏感词的第一个字符取出来,作为比较对象。遍历整个字符串,如果发现字符跟敏感词第一个字符相同,就从字符串取出跟关键词相同长度的子串比较,如果相同就替换。本算法比较适合敏感词都不长的场合。Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

在JAVA中怎么实现关键字过滤

自己判断一下, 字符串中是否包含某个关键字即可, String.contains(CharSequence s) 如果存在返回true, 否则返回false

java过滤sql关键字的正则替换掉

java过滤sql关键字的正则替换掉方法如下:

可以在C#中这样做:Regexregex = newRegex(@"]*[^");

stringcleanedHtml = regex.Replace(html, "");

可是我并不想再写个循环去遍历每条记录,然后保存每条记录,我想在数据库中一步到位,而sql只提供了简单的replace函数,这个函数明显不能达到咱的要求,那就去写一个自定义函数吧。

函数源代码如下:CREATE functiondbo.regexReplace

(@source ntext,--原字符串@regexp varchar(1000),--正则表达式@replace varchar(1000),--替换值@globalReplace bit=1,--是否是全局替换@ignoreCase bit=0 --是否忽略大小写)returnS varchar(1000)AS

begin

declare@hr intege

declare@objRegExp integer

declare@result varchar(5000)exec@hr =sp_OACreate'VBScript.RegExp',@objRegExp OUTPUT

IF@hr 0 begin

exec@hr =sp_OADestroy@objRegExp

returnnullend

exec@hr =sp_OASetProperty@objRegExp,'Pattern',@regexp

IF@hr 0 begin

exec@hr =sp_OADestroy@objRegExp

returnnullend

exec@hr =sp_OASetProperty@objRegExp,'Global',@globalReplace

IF@hr 0 begin

exec@hr =sp_OADestroy@objRegExp

returnnullend

exec@hr =sp_OASetProperty@objRegExp,'IgnoreCase',@ignoreCase

IF@hr 0 begin

exec@hr =sp_OADestroy@objRegExp

returnnullend

exec@hr =sp_OAMethod@objRegExp,'Replace',@result OUTPUT,@source,@replace

IF@hr 0 begin

exec@hr =sp_OADestroy@objRegExp

returnnullend

exec@hr =sp_OADestroy@objRegExp

IF@hr 0 begin

returnnullend

return@result

end

需要注意的是,即使写好了这个函数,也并不能马上使用。执行这个函数时可能会出现以下的错误:Msg 15281, Level 16, State 1, Line 1

SQL Server blocked access to procedure 'sys.sp_OACreate' of component 'Ole Automation Procedures' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ole Automation Procedures' by using sp_configure. For more information about enabling 'Ole Automation Procedures', see "Surface Area Configuration" in SQL Server Books Online.

这是因为未开启Ole Automation Procedures选项,MSDN中的Ole Automation Procedures选项。执行下面的语句开启这个选项:sp_configure'show advanced options',1;GO

RECONFIGURE;GOsp_configure'Ole Automation Procedures',1;GO

RECONFIGURE;GO

所有的准备工作都已经做好,那就试验一下吧。

Example1:忽略大小写并替换selectdbo.regexReplace('123456',']*[^','',1,1)

Example2: 使用贪婪匹配

html代码:

Also Available - Smith Hogan: Criminal Law Cases Materials 10th ed

There is, as ever, detailed analysis of the many recent case developments, in particular,

a revision of the chapter dealing with secondary liability and joint enterprise.

调用代码:selectdbo.regexReplace(html,']*(.|\n)*?','',1,1)

Example3:去除html标签selectdbo.regexReplace('

Key Contact:

Mr Jack, Zhou

General Manager

Mr Adu, Ho

Marketing Director

Overseas Sales

MsWinny, Luo

Sales Manager

Overseas Sales',']*','',1,0)

Example4:数据库字段值替换updateBooks。

jsp\java 如何编写过滤器过滤特殊字符?

package com.jingdu.common;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class IllegalCharacterFilter implements Filter {

private String[] characterParams = null;

private boolean OK=true;

public void init(FilterConfig config) throws ServletException {

// if(config.getInitParameter("characterParams").length()1)

// OK=false;

// else

// this.characterParams = config.getInitParameter("characterParams").split(",");

System.out.println("初始化");

}

@SuppressWarnings("unchecked")

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain arg2) throws IOException, ServletException {

HttpServletRequest servletrequest = (HttpServletRequest) request;

HttpServletResponse servletresponse = (HttpServletResponse) response;

String param = "";

String paramValue = "";

//设置请求编码格式

servletresponse.setContentType("text/html");

servletresponse.setCharacterEncoding("UTF-8");

servletrequest.setCharacterEncoding("UTF-8");

java.util.Enumeration params = request.getParameterNames();

//循环读取参数

while (params.hasMoreElements()){

param = (String) params.nextElement(); //获取请求中的参数

String[] values = servletrequest.getParameterValues(param);//获得每个参数对应的值

for (int i = 0; i values.length; i++) {

paramValue = values[i];

//转换目标字符变成对象字符,可以多个。后期扩展特殊字符库用于管理

paramValue = paramValue.replaceAll("'","");

paramValue = paramValue.replaceAll("@","");

paramValue = paramValue.replaceAll("胡锦涛","***");

//这里还可以增加,如领导人 自动转义成****,可以从数据库中读取非法关键字。

values[i] = paramValue;

}

//把转义后的参数重新放回request中

request.setAttribute(param, paramValue);

}

//继续向下 执行请求,如果有其他过滤器则执行过滤器

arg2.doFilter(request, response);

}

public void destroy() {

// TODO Auto-generated method stub

}

}

java 字符串过滤

package test;

import java.util.HashMap;

/**

* maxLength-需要过滤最长字符串的长度

* filterStrsstring,string-需要过滤字符串的集合,key为需要过滤字符串,value为过滤成的字符串如"*"

* @author Administrator

*

*/

public class Test{

    private int maxLength;

    private HashMapString,String filterStrs=new HashMapString,String();

/**

* 初始化需要过滤掉*的数量

*/

private String initStr(int n){

        StringBuffer sb=new StringBuffer();

          for(int i=0;in;i++){

            sb.append('*');

        }

        return sb.toString();

}

/**

* str-被过滤得字符串

* s-需要过滤得字符串

* 获得剩下未过滤的字符串

*/

private String getNextStr(String str,int start,int slength){

    if(start==0){

        str=str.substring(slength);

    }else if(start+slengthstr.length()){

        str=str.substring(start+slength);

    }

    return str;

}

/**

* str-被过滤得字符串

* s-需要过滤得字符串

* 获得过滤后的字符串

*/

private StringBuffer getFilterStr(StringBuffer sb,String str,int start,String s){

      if(start!=0){

        sb.append(str.substring(0,start));

    }

    sb.append(filterStrs.get(s));

    return sb;

}

/**

* str-被过滤的字符串

* 过滤,并组合过滤后的字符串

*/

public String filter(String str) {

    StringBuffer resultStr=new StringBuffer();

    for(int start=0;startstr.length();start++){

        for(int end=start+1;end=str.length()end=start+maxLength;end++){

            String s=str.substring(start, end);

            int slength=s.length();

            if(filterStrs.containsKey(s)){

                  resultStr=getFilterStr(resultStr,str,start,s);

                str=getNextStr(str,start,slength);

                start=0;

                end=start;

            }

        }

    }

    resultStr.append(str);

    return resultStr.toString();

}

public void put(String key) {

    int keyLength=key.length();

    filterStrs.put(key, initStr(keyLength));

    if(keyLengththis.maxLength)

        maxLength=keyLength;

}

public static void main(String[] agrs){

    Test t=new Test();

    t.put("TMD");

    t.put("TNND");

    t.put("NND");

    System.out.println(t.filter("TMD,TNND..TMDTMDTMDTMD.tTNND TMDTNNDTNNDTNND"));

}

}

关于java过滤字和java过滤字符的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-09,除非注明,否则均为首码项目网原创文章,转载请注明出处。