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(">", "]");
}
}
分享到:
相关推荐
FilterData:碰撞过滤器 MassData:质量运算器 PolygonDef:多边开定义 PolygonShape:凸多边形 org.jbox2d.common包 Color3f:调试绘图颜色 Settings:全局设置 Mat22:2*2 矩阵 Sweep:碰撞描述 Vec2:...
编写自定义过滤器——分页示例131 从JavaScript代码中访问过滤器133 过滤器做什么与不做什么134 过滤器与DOM操作135 过滤器中代价高昂的数据变换136 不稳定的过滤器136 48摘要138 第5章创建高级表单139 51...
操作方法与实验步骤 本练习主机A、B为一组,C、D为一组,E、F为一组。实验角色说明如下: 实验主机 实验角色 主机A、C、E 攻击者(扫描主机) 主机B、D、F 靶机(被扫描主机) 首先使用"快照X"恢复Windows系统环境...
练习 第9章 高阶分类:核方法与SVM 婚介数据集 数据中的难点 基本的线性分类 分类特征 对数据进行缩放处理 理解核方法 支持向量机 使用LIBSVM 基于Facebook的匹配 练习 第10章 寻找独立特征 搜集一组新闻 ...
搜集一组新闻 227 先前的方法 231 非负矩阵因式分解 232 结果呈现 240 利用股票市场的数据 243 第11章 智能进化 250 什么是遗传编程 250 将程序以树形方式表示 253 构造初始种群 257 测试题解 259 对程序...
导航Settings-CuteFTP有一组巨大的导航功能和选项。除了上面这些,一种上传软件可以锁定一个本地文件夹到活动远程窗格中,索引配置文件夹(目录)选项,配置缓存文件夹,自动刷新文件夹转移和导航事件后,设置公差服务器...
Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...
问题4-14:粗缆以太网有一个单独的收发器。细缆以太网和双绞线以太网有没有收发器?如果有,都在什么地方? 问题4-15:什么叫做“星形总线(star-shaped bus)”或“盒中总线(bus-in-a-box)”? 问题4-16:以太网的...
1.18 我有这样一组声明:typedefchar*charp;constcharpp;为什么是p而不是它指向的字符为const? 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?constintn=5;inta[n]; 1.20 constchar*p、char...
在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...
1.18 我有这样一组声明:typedef char *charp; const charp p; 为什么是p而不是它指向的字符为const? 10 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?const int n=5; int a[n]; 10 1.20 ...
在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天...
实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 获取数组当前的键名和值 162 实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 ...
实例131 对数组元素进行随机排序 160 实例132 随机抽取数组中元素 161 实例133 二维数组的输出 162 实例134 获取数组当前的键名和值 162 实例135 检测数组中是否存在某个值 163 实例136 获取数组中的当前单元 164 ...
Chrome Frame 会把最新版的Chrome Webkit 内核和JavaScript 引擎注入到IE中, IE浏览器将获得Chrome的性能和功能 目录 摘要 I ABSTRACT II 专业名词清单 III 第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关...