`
zccst
  • 浏览: 3318783 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java关键字(字符串)过滤

阅读更多
import java.util.HashMap;

/**
  * maxLength-需要过滤最长字符串的长度
  * filterStrs<string,string>-需要过滤字符串的集合,key为需要过滤字符串,value为过滤成的字符串如"*"
  * @author Administrator
  *
  */
public class Test{
private int maxLength;
private HashMap<String,String> filterStrs=new HashMap<String,String>();
/**
  * 初始化需要过滤掉*的数量
  */
private String initStr(int n){
StringBuffer sb=new StringBuffer();
for(int i=0;i<n;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+slength<str.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;start<str.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(keyLength>this.maxLength)
maxLength=keyLength;
}

public static void main(String[] agrs){
Test t=new Test();
t.put("TMD");
t.put("TNND");
t.put("操");
t.put("NND");
t.put("中奖");
System.out.println(t.filter("TMD,操,TNND.操..TMDTMDTMDTMD.tTNND.操TMDTNNDTNNDTNND操中奖信息"));
}

}
分享到:
评论

相关推荐

    字符串过滤工具类,不错的类

    "字符串过滤工具类"就是针对这样的需求而设计的,它提供了一种便捷的方式来对字符串中的特定关键字进行过滤,以达到安全、合规或者优化显示的目的。下面将详细解释这个工具类的核心知识点。 首先,字符串过滤工具类...

    将字符串转换为lambda表达式

    将字符串转换为`lambda`表达式的一个实际应用是动态构建过滤条件。例如,在GUI应用中,用户可以输入一个表达式,如`'price &gt; 100'`,然后程序将其转换为一个`lambda`函数,用于筛选数据。这样,用户可以通过界面实时...

    java日志文件过滤

    6. **性能优化**:为了处理大量日志,FilterFile可能采用了高效的算法和数据结构,如使用`StringBuilder`拼接字符串,或者使用Java 8的流(Stream)API进行并行处理。 7. **代码结构清晰**:考虑到描述中提到代码结构...

    java-根据过滤条件显示树形结构

    过滤条件可以是任何类型,如字符串匹配、数值比较等。你需要创建一个方法来评估每个节点是否满足这些条件。 3. **树遍历(Tree Traversal)**:为了显示树形结构,我们需要遍历整个树,检查每个节点是否满足过滤...

    jsp页面中关键字过滤函数

    这个类可以包含一个方法,比如`filterKeywords(String input)`,接受用户输入的内容,然后返回过滤后的字符串。 2. **关键字列表**:首先,我们需要定义一个敏感词库,这可以是一个静态数组或者ArrayList,存储所有...

    SQL注入过滤 (Java版)

    `isSuspicious`方法可以根据实际需求进行实现,例如检查字符串是否包含SQL关键字、特殊字符等。此外,还可以使用现有的库,如OWASP Java Encoder,对用户输入进行安全编码。 接下来,我们需要在`web.xml`配置文件中...

    基于jsp的非法关键字过滤功能

    2. **字符串操作**:关键字过滤的关键在于对输入字符串的处理。这涉及到字符串的查找、替换和判断等操作,例如使用`indexOf()`或`contains()`方法检查关键字是否存在,使用`replace()`或`replaceAll()`方法替换非法...

    字符串函数大全~~值得学习

    在Delphi、C和Java等编程语言中,都有丰富的字符串函数库,使得开发人员能够方便地进行字符串比较、查找、替换等一系列操作。在Delphi中,这些函数主要集中在`StrUtils`单元中。 1. `AnsiResemblesText` 函数:这个...

    java防sql注入攻击过滤器

    例如,如果一个登录接口的用户名字段未进行有效验证,攻击者可以输入"admin' OR '1'='1 --"这样的字符串,可能导致所有用户的账户信息被显示出来。 为了解决这个问题,Java中的防SQL注入过滤器可以在数据进入数据库...

    filter过滤关键字

    1. **过滤关键字的基本原理**:过滤关键字通常涉及到字符串操作,例如正则表达式匹配。通过设定一系列规则,例如禁止特定字符、限制长度、去除特殊符号等,实现对文本的净化。在编程语言中,如Python的`filter()`...

    JavaScript过滤SQL注入字符

    例如,一个简单的登录表单如果没有进行适当的验证,攻击者可以输入"username' OR '1'='1 --"这样的字符串,使所有用户的登录验证都能通过。 二、JavaScript前端过滤 虽然前端验证不能替代后端的安全措施,但可以在...

    字符串使用情况查询,类型和内容可选

    比如,寻找未使用的字符串常量可以减少内存占用,查找特定关键字的使用可以帮助理解代码逻辑,检查翻译一致性则对本地化项目至关重要。 在实际应用中,"CheckStringUsage"工具可能会提供一个直观的用户界面,用户...

    Java敏感词过滤Java敏感词过滤

    - 输出过滤前后的字符串长度对比。 - 计算过滤耗时。 #### 四、性能优化与扩展 针对上述实现,可以考虑以下几点进行优化: - **使用更高效的正则表达式**:避免使用过多的括号和重复模式。 - **缓存模式对象**:...

    Java代码:KWIC程序示例

    1. **数据读取过滤器**:这个过滤器负责从"kwic.txt"中读取文本内容,并将其转化为程序可以处理的格式,如字符串数组。 2. **分词过滤器**:接收到文本后,程序会进行分词,即将连续的字符序列分割成单独的单词。这...

    WEB项目中实现屏蔽关键字代码

    可以使用正则表达式或者简单的字符串查找算法实现。例如,你可以创建一个方法,接受用户输入和黑名单,返回是否存在匹配的关键字。 ```java public boolean containsBlacklistedKeyword(String input, List&lt;String&gt;...

    java使用正则表达式过滤html标签

    标签“java过滤html标签 java正则过滤html标签 java过滤所有html标签”则指明了文章的具体技术范畴和读者可以利用的关键字。 在内容部分,文章提供了一个名为`HtmlRegexpUtil`的工具类,该类是专门用于处理HTML标签...

    JavaScript 过滤关键字

    关键步骤包括定义一个包含关键字的数组,使用正则表达式将这些关键字组合起来,然后利用字符串的replace方法进行替换操作。替换成的格式通常是带有特定样式的标签(如),这样一来,页面上就会以不同的样式高亮显示...

    一种基于Java编程的脏字过滤器的设计.pdf

    Java因其跨平台性、丰富的类库以及强大的字符串处理能力,成为实现这种过滤器的理想选择。在实际实现算法时,可以利用字符串匹配技术,如KMP算法或Boyer-Moore算法,高效地查找脏字。 具体实现过程中,首先创建一个...

    Html文件关键字搜索

    - **搜索算法**:可以使用简单的字符串搜索算法,如KMP或Boyer-Moore,也可以使用全文搜索引擎如Elasticsearch或Lucene,它们能提供更高效的搜索性能和高级查询功能。 3. **相关工具**: - **命令行工具**:如...

    Java 实现文章汉字关键词(违禁词)识别

    1. **字符串处理**:Java的String类提供了丰富的字符串操作方法,如indexOf()和contains(),可以用于基本的关键词匹配。但这种方法效率较低,不适用于大量文本的处理。 2. **正则表达式**:Java的Pattern和Matcher...

Global site tag (gtag.js) - Google Analytics