在函数链中运行函数:替换指定字符串的函数(Java)
2017-03-21 本文已影响41人
编程路上的一只
下面我们写一个简单的替换指定字符的函数,此函数可以在函数链上运行。
在String这个类中,有一个replaceAll方法,此方法可以接受两个参数,一个是regex(正则表达式),另外一个是replacement(替代字符),只要匹配这个正则表达式的子字符串都会被replacement替换掉。
废话不多说,直接上代码:
package com.hanshulian.string; //包名
import com.hanshulian.iface.INode; //导入对应的接口,此接口在com.hanshulian.iface.jar包中。
import com.hanshulian.node.Request; //导入对应的请求类,此类在com.hanshulian.iface.jar包中。
import com.hanshulian.node.Response; //导入对应的响应类,此类在com.hanshulian.iface.jar包中。
import java.util.HashMap;
public class ReplaceEachSubstring implements INode { //为了能在函数链上面运行,必须实现INode接口。
@Override
public Response exec(Request request) {
Response response = new Response(); //创建一个响应实例
HashMap<String, Object> returnParams = new HashMap<>(); //创建一个装载返回参数的Hash
try {
HashMap<String, Object> params = request.getParams(); //从请求中获取请求参数
String text = (String)params.get("string"); //取得string参数的值,根据此函数对应的输入接口参数名来获取,可查看函数链中对应接口参数说明。
String regex = (String)params.get("regex"); //取得regex参数的值,根据此函数对应的输入接口参数名来获取,可查看函数链中对应接口参数说明。
String replacement = (String)params.get("replacement"); //取得replacement参数的值,根据此函数对应的输入接口参数名来获取,可查看函数链中对应接口参数说明。
if (text == null) {
response.setCode(Response.BAD_REQUEST); //对于不符合的输入返回对应的错误代码
response.setMessage("输入参数(string)不能为空。");
response.setParams(returnParams);
return response;
}
if (regex == null) {
response.setCode(Response.BAD_REQUEST); //同上
response.setMessage("输入参数(regex)不能为空。");
response.setParams(returnParams);
return response;
}
if (replacement == null) {
response.setCode(Response.BAD_REQUEST); //同上
response.setMessage("输入参数(replacement)不能为空。");
response.setParams(returnParams);
return response;
}
String result = text.replaceAll(regex, replacement); //正主在这里,对所有满足条件的子字符串进行替换
returnParams.put("string", result); //设置返回的参数。根据此函数对应的输出接口参数名来获取,可查看函数链中对应接口参数说明。
response.setCode(Response.OK); //成功的返回代码
response.setMessage("succuess!"); //成功的返回信息
response.setParams(returnParams); //设置返回参数的Hash设置到响应中
return response; //返回响应
} catch (Exception e) { //异常情况处理
e.printStackTrace();
response.setCode(Response.INTERNAL_SERVER_ERROR);
response.setMessage("函数出现异常!");
response.setParams(returnParams);
return response;
}
}
}
代码写好调试没有问题后,把这个文件打包到jar包里,然后在函数链创建一个函数,在上传页面上传这个jar包并等待完成安装。
运行效果可以在替换指定的字符串中运行测试。
依赖的jar包可以在这里下载hanshulian-node-iface-0.0.1.jar