黑马程序员技术交流社区

标题: 有个题目,大神们有什么思路 [打印本页]

作者: cjmjava    时间: 2015-5-12 11:59
标题: 有个题目,大神们有什么思路
把读取出来的文本数据中”TMD”、”SB”的敏感字符以”**”或”***”代替


作者: right    时间: 2015-5-12 12:25
撸主可以用正则表达式来实现:)
String regEx="sb|2b|妈的";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
作者: nyzplymh    时间: 2015-5-12 14:36
String.replace("TMD").replace("SB");
作者: 横看成岭侧成锋    时间: 2015-5-12 16:35
用ReadLine和正则就可以了
作者: guoqiangmailbox    时间: 2015-5-12 16:49
正则表达式 就可以了  String.replace("TMD").replace("SB");
作者: cjmjava    时间: 2015-5-12 17:03
right 发表于 2015-5-12 12:25
撸主可以用正则表达式来实现
String regEx="sb|2b|妈的";
Pattern p = Pattern.compile(regEx);

已解决,谢谢
作者: cjmjava    时间: 2015-5-12 17:04
package day_21homework;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
* 4、把读取出来的文本数据中”TMD”、”SB”的敏感字符以”**”或”***”代替
*/
public class Test3 {
        public static void main(String[] args) {
                String str1 = "TMD";
                String str2 = "SB";
                try {
                        //调用替换方法
                        replaceStr(str1 , str2);
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }

        private static void replaceStr(String str1, String str2) throws IOException {
                //创建字符输入流缓冲区对象
                File file = new File("D:\\TestTemp.txt");
                BufferedReader br = new BufferedReader(new FileReader("D:\\Test1.txt"));
                //创建临时字符输出流对象
                FileWriter fwTemp = new FileWriter(file);               
                String str = "";
                //考虑到大小写,所以用正则
                String tmdRegex = "[tT][mM][dD]";
                String sbRegex = "[sS][bB]";
                while((str = br.readLine()) != null){
                        //替换所有匹配正则的子字符串
                        str = str.replaceAll(tmdRegex, "***");
                        str = str.replaceAll(sbRegex, "**");
                        fwTemp.flush();
                        //将字符串写入临时文本文件中
                        fwTemp.write(str+System.getProperty("line.separator"));               
                }
                br.close();
                fwTemp.close();
                //创建临时文件字符输入流对象
                BufferedReader brTemp = new BufferedReader(new FileReader(file));
                //创建字符输出流对象,指定为原文件
                FileWriter fw = new FileWriter("D:\\Test1.txt");
                while((str = brTemp.readLine()) != null){
                        fw.write(str+System.getProperty("line.separator"));
                        fw.flush();
                }
                brTemp.close();
                fw.close();
                //最后删除临时文件
                file.delete();
        }
}

作者: right    时间: 2015-5-12 19:08
cjmjava 发表于 2015-5-12 17:03
已解决,谢谢

不客气




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2