`
enson16855
  • 浏览: 6317 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
社区版块
存档分类
最新评论

过滤器的模拟——一组过滤器

 
阅读更多

main程序

import com.enson.chan.EditorFilter;
import com.enson.chan.Filter;
import com.enson.chan.HTMLFilter;

public class Main {
	public static void main(String[] args) {

		Filter[] filters = { new HTMLFilter(), new EditorFilter() };
		String msg = "<script/>,qqqqccc";

		for (Filter f : filters) {
			msg = f.doFilter(msg);
		}

		System.out.println(msg);
	}
}

filter接口

package com.enson.chan;

public interface Filter {
	
	public String doFilter(String str);

}

filter实现类

package com.enson.chan;


public class EditorFilter implements Filter {

	@Override
	public String doFilter(String str) {
		// TODO Auto-generated method stub
		return str.replaceAll("qq", "mm").replaceAll("cc", "DBMS");
	}

}

package com.enson.chan;


public class HTMLFilter implements Filter {

	@Override
	public String doFilter(String str) {
		// TODO Auto-generated method stub
		return str.replaceAll("<", "[").replaceAll(">", "]");
	}

}


分享到:
评论

相关推荐

    OPhone平台2D游戏引擎实现——物理引擎

    FilterData:碰撞过滤器 MassData:质量运算器 PolygonDef:多边开定义 PolygonShape:凸多边形 org.jbox2d.common包 Color3f:调试绘图颜色 Settings:全局设置 Mat22:2*2 矩阵 Sweep:碰撞描述 Vec2:...

    精通AngularJS part1

    编写自定义过滤器——分页示例131 从JavaScript代码中访问过滤器133 过滤器做什么与不做什么134 过滤器与DOM操作135 过滤器中代价高昂的数据变换136 不稳定的过滤器136 48摘要138 第5章创建高级表单139 51...

    网络安全实验--洪泛攻击.docx

    操作方法与实验步骤 本练习主机A、B为一组,C、D为一组,E、F为一组。实验角色说明如下: 实验主机 实验角色 主机A、C、E 攻击者(扫描主机) 主机B、D、F 靶机(被扫描主机) 首先使用"快照X"恢复Windows系统环境...

    集体智慧编程中文版

    练习 第9章 高阶分类:核方法与SVM 婚介数据集 数据中的难点 基本的线性分类 分类特征 对数据进行缩放处理 理解核方法 支持向量机 使用LIBSVM 基于Facebook的匹配 练习 第10章 寻找独立特征 搜集一组新闻 ...

    集体智慧编程.[美]西格兰(带详细书签) PDF 下载

    搜集一组新闻 227 先前的方法 231 非负矩阵因式分解 232 结果呈现 240 利用股票市场的数据 243 第11章 智能进化 250 什么是遗传编程 250 将程序以树形方式表示 253 构造初始种群 257 测试题解 259 对程序...

    CuteFTP9简易汉化版

    导航Settings-CuteFTP有一组巨大的导航功能和选项。除了上面这些,一种上传软件可以锁定一个本地文件夹到活动远程窗格中,索引配置文件夹(目录)选项,配置缓存文件夹,自动刷新文件夹转移和导航事件后,设置公差服务器...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    清华大学的计算机网络课件

    问题4-14:粗缆以太网有一个单独的收发器。细缆以太网和双绞线以太网有没有收发器?如果有,都在什么地方? 问题4-15:什么叫做“星形总线(star-shaped bus)”或“盒中总线(bus-in-a-box)”? 问题4-16:以太网的...

    你必须知道的495个C语言问题

    1.18 我有这样一组声明:typedefchar*charp;constcharpp;为什么是p而不是它指向的字符为const? 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?constintn=5;inta[n]; 1.20 constchar*p、char...

    JAVA上百实例源码以及开源项目源代码

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    《你必须知道的495个C语言问题》

    1.18 我有这样一组声明:typedef char *charp; const charp p; 为什么是p而不是它指向的字符为const? 10 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?const int n=5; int a[n]; 10 1.20 ...

    JAVA上百实例源码以及开源项目

    在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 获取数组当前的键名和值 162 实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 获取数组当前的键名和值 162 实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关...

Global site tag (gtag.js) - Google Analytics