首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

替换字符中的关键字?解决方案

2012-05-30 
替换字符中的关键字?在用户发布一条消息的时候,消息中的最后一个字段是Remarks 用户可以自由输入,但是在

替换字符中的关键字?
在用户发布一条消息的时候,消息中的最后一个字段是Remarks ; 用户可以自由输入,但是在显示的时候,屏蔽一些关键字,比如Email,电话,链接,都用*********代替。  

请问如何实现 ? Java / javascript / EL ?

[解决办法]
最简单的方法:用replaceAll进行替换就可以了。
[解决办法]
如楼上的楼上所说 ,写个函数,该函数定义了所有要被替换的关键字并定义替换后的输出对象,然后在需要替换的地方调用这个函数即可
[解决办法]
显示的时候指的是什么时候,你描述的是什么用户也没看懂
[解决办法]

探讨

用户发布的时候输入 : 邮箱:aaaa@sina.com , 电话:86-020-96969685,网址:www.sian.com; 请联系我们;

另外一个用户来看时这样的信息: 邮箱:***********,电话:***********,网址:***********,请联系我们;

[解决办法]
String result = "123456";
result.replaceAll("456","***");

[解决办法]
Java code
import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;/** * @author cstur4 */public class CSDN {        public static void main(String[] args) {                String src = "邮箱:aaaa@sina.com , 电话:86-020-9696968,网址:www.sina.com; 请联系我们;";        List<String> marks = new ArrayList<String>();        marks.add("邮箱");        marks.add("电话");        marks.add("Email");        marks.add("网址");        StringBuilder sb = new StringBuilder();        sb.append("(");        for(String s:marks)            sb.append(s+"|");        sb.deleteCharAt(sb.length()-1);        sb.append(")[^,;,;]+");        System.out.println(sb);        StringBuffer des = new StringBuffer();        Matcher m = Pattern.compile(sb.toString()).matcher(src);        while(m.find())        {            System.out.println(m.group());            m.appendReplacement(des, "$1: **********");        }                m.appendTail(des);        System.out.println(des);                }        }
[解决办法]
可以通过写一个专门的替换类来实现。
[解决办法]
sorry,没看清。那就用正则表达式+string.replaceAll.比如
Java code
String source ="Email:abcdefg@zzz.com; " ;        String result=source.replaceAll("[a-z]([a-z0-9]*[-_]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\\.][a-z]{2,3}([\\.][a-z]{2})?","******");        System.out.println(result);
[解决办法]
用户在输入的时候发布消息。

最后在显示的时候需要做的就是。

第一:从数据库查询出刚才用户发布的消息。
第二:把消息封装在一个list里面可以和Map进行组装也就是List<Map>。
第三:遍历该list获取map的key后进行逻辑判断,也就是if(null!=map.get("邮箱)){
map.replace(“可以用正则”,"*****");
}
第四:返回过滤后的list。发送到前台用jstl表达式进行遍历。


方法不止这个。也可以在前台具体处理,具体问题具体分析。
[解决办法]
探讨
请看下需求,如果你这样就可以解决, 岂不是我太菜了。


引用:

String result = "123456";
result.replaceAll("456","***");

热点排行