软件工程师用Java语言设计个脏字过滤器

典型参考设计

3人已加入

描述

  良好的网络文化对培养青少年的爱国意识、创新精神、促进青少年良好的个性发展以及文化学习等方面都有积极的作用。但是网络文化中混杂着种种不良因素,对青少年造成许多负面影响:网络中的不健康内容不利于青少年的成长,甚至造成许多青少年犯罪行为的不断发生;网络世界的虚拟性还会造成青少年对现实社会的不满,青少年对网络世界的过分迷恋会导致网络孤独,网络中多元化的内容会导致青少年认识偏差,网络的隐匿性容易使青少年道德弱化。特别令人担忧的是不良的网络文化对青少年的犯罪起着推动作用,值得全社会关注和重视。

  本文提出了一种脏字过滤器软件的设计,对网络中不良的内容进行查找、发现,避免这些不良网络文化侵蚀青少年的心灵健康。

  1 脏字过滤器的设计原理

  脏字过滤器的原理图如图1所示。其原理如下:(1)对脏字库的内容进行分割,把脏字库中所有的脏字或词组分开,并把这些脏字或词组存入数组中;(2)将待测文件库中的文件进行逐个读取,并记录文件的内容;(3)在待测文件中查找是否存在刚存放脏字或脏词组内容的数组里面的内容,如果有,进行标注等操作;如果没有,继续检查待测文件库中的下一个待测文件,直到待测文件库中的待测文件都被检查完为止;(4)输出结果。即输出待测文件库中每个待测文件中包含脏字或脏词组的个数及出处等信息。

  软件工程师

  2 算法实现

  软件开发环境:myeclipse平台,Java语言。首先以myeclipse平台新建一个java project,在新建的project中需要导入下面相关文件:

  import java.io.BufferedReader;

  import java.io.File;

  import java.io.FileNotFoundException;

  import java.io.FileReader;

  import java.io.IOException;

  import java.io.InputStreamReader;

  import java.util.StringTokenizer;

  过滤器软件中main函数的主要内容如下:

  public static void main(String[] args) {

  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

  String ans=null;

  int cnt=0;//字库中关键词个数

  int number=0;//脏字出现次数

  String filepath=“D:\\脏字待测文件库”;

  //待检测文件路径,此文件夹下可以放若干个待检测的文件

  String fileLibrarypath=“D:\\脏字典\\file.txt”;

  //脏字库文件的存放路径

  File file = new File(filepath);

  try {

  //读入用户输入的回车键信息

  System.out.println(“请按回车键,查看过滤信息:”);

  String str = null;

  str = br.readLine();

  if (str != null) {

  if (!file.isDirectory()) {

  System.out.println(“待检测文件路径

  不对,请修改路径。”);

  } else if (file.isDirectory()) {

  ans=getcontent(fileLibrarypath);

  int k;

  StringTokenizer sst=new

  StringTokenizer(ans, “|”);

  k = sst.countTokens();

  String[] record = new String[k];

  while (sst.hasMoreElements()) {

  record[cnt] = sst.nextToken();

  cnt++;

  }

  String[] filelist = file.list();

  for (int i = 0, flen = filelist.length; i

  《 flen; i++){

  String temp = filepath +

  “\\” + filelist[i];

  number = searchkeyword(record,

  cnt, temp);

  System.out.println(“第”+(i+1) +“文件中脏字出现的次数:” + number);

  //字库中关键词个数

  }

  } else {

  //提示用户按回车键

  System.out.println(“你还没有输入回

  车键信息”);

  }

  }

  } catch (IOException e) {

  e.printStackTrace();

  }

  //输出查询结果

  if (ans != null) {

  System.out.println(“字库中关键词个数:”+ cnt);//字库中关键词个数

  System.out.println(“脏字库内容如下:”+ ans);

  } else {

  System.out.println(“没有可以匹配的信息”);

  //输出脏字库中的内容

  }

  }

  //得到指定路径文件中的内容

  private static String getcontent(String filepath) {

  String all = “”;

  File file = new File(filepath);

  try {

  if (!file.isFile()) {

  System.out.println(“文件路径不对,请修改路径”);

  } else {

  File readfile = new File(filepath);

  BufferedReader br = new BufferedReader(new FileReader(readfile));

  String ss = br.readLine();

  while (ss != null) {

  all = all + ss;

  //all中存放读取的文件内容信息

  ss = br.readLine();

  }

  }

  } catch (FileNotFoundException e) {

  e.printStackTrace();

  } catch (IOException e) {

  e.printStackTrace();

  }

  return all;

  }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
luoxuepeng 2012-09-29
0 回复 举报
aa 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分