日期:2014-05-20  浏览次数:20627 次

急!请教如何屏蔽脏话.感激不尽!
举例:
(原文)我就看你不顺眼,我日你.你这贱人.
(屏蔽)我就看你不顺眼,我*你.你这*人.---(请注意言谈举止!!!)

本人是大四的学生,大后天就要交毕业设计了。但辅导老师叫我在原来设计的JSP论坛里再添加此功能...大家帮帮忙,给个提示也好.感激不尽

------解决方案--------------------
jsp过滤 对表单提交的东西 进行过滤
------解决方案--------------------
呵呵,有意思
------解决方案--------------------
( "我就看你不顺眼,我日你.你这贱人 ".replaceAll( "日 ", "太阳 ")).replaceAll( "贱 ", "jian ");
结果是 "我就看你不顺眼,我太阳你.你这jian人 "

当然编程不可能这么做,因为你不能一个一个去替换你要过滤的字,而且可能 "日你 "是脏话,但是 "后羿射日 "不能替换成 "后羿射太阳 ".

正确的做法我不知道,但是最直接的方法应该是使用正则表达式,你要定义自己的脏话字典.还是去下载一个开源论坛,然后看看人家是怎么做的比较好.
------解决方案--------------------
那只能在提交的里面替换了replaceAll,把不想让出现的词都写出来替换成*
String.replaceAll( "日 ", " ")
String.replaceAll( "贱 ", " ")
以前在移动网站上发短信,就不能写 "妈 "字,要是能根据上下意思来判断的话就不知道怎么做了


------解决方案--------------------
把脏话定义成*号不就完了吗
------解决方案--------------------
你设计一张表专门存那些脏话,然后做一个过滤器,每次发言的时候都验证是否包含那张表种存的数据,如果有那就给他屏蔽了就好了啊。
------解决方案--------------------
//bs你开这么多帖
String regEx = "[^操贱]*(贱[人B]|操[你他她])[^操贱]* ";
String str= "我就看你不顺眼,我操你.玩游戏操作都不好,你这贱人. ";
Pattern p=Pattern.compile(regEx);
Matcher m=p.matcher(str);
while (m.find()) {
for (int i = 0; i < m.groupCount(); i++)
str = str.replaceAll(m.group(i+1), "* " + m.group(i+1).replaceAll( "[操贱] ", " "));
}
System.out.println(str);
------解决方案--------------------
呵呵,那要屏蔽的字眼还真是多啊
操/贱/日/干/搞/甩。。。。。。。
可是这样比如“干”这个字某些时候也不算骂人的话啊~~~