FontFilter.java
上传用户:yuyunping
上传日期:2013-03-21
资源大小:1844k
文件大小:2k
源码类别:

Java书籍

开发平台:

Java

  1. package net.acai.filter;
  2. import java.util.regex.*;
  3. /**
  4.  * Title:        清清网络
  5.  * Description:
  6.  * Copyright:    Copyright (c) 2002
  7.  * Company:      www.SuperSpace.com
  8.  * @author:       SuperSpace
  9.  * @version 1.0
  10.  */
  11. public class FontFilter extends filter {
  12.   public FontFilter() {
  13.   }
  14.   public FontFilter(String s) {
  15.     super(s);
  16.   }
  17.   public String convertString(){
  18.     return this.getTextFilter();
  19.   }
  20.   public String getTextFilter(){
  21.     String tempString=s;
  22.     for(int i=0;i<4;i++){
  23.       tempString=fontConverter(tempString);
  24.      // System.out.println(tempString);
  25.     }
  26.     return tempString;
  27.   }
  28.   public String fontConverter(String s){
  29. Pattern p;
  30. Matcher m;
  31. StringBuffer sb;
  32. boolean result;
  33. String reg="\[size=([1-4])\](.[^\[]*)(\[\/size\])"+
  34.                   "|\[face=(.[^\[]*)\](.[^\[]*)(\[\/face\])"+
  35.                   "|\[align=(.[^\[]*)\](.[^\[]*)(\[\/align\])"+
  36.                   "|\[em([0-9]*)\]";
  37.         p = Pattern.compile(
  38.             reg,
  39.             Pattern.CASE_INSENSITIVE);
  40.         m = p.matcher(s);
  41.         sb = new StringBuffer();
  42.         result = m.find();
  43.         while(result&&m.group(0)!=null) {
  44.           if(m.group(1)!=null)
  45.             m.appendReplacement(sb,"<font size="+m.group(1)+">"+m.group(2)+"</font>");
  46.           else if(m.group(4)!=null)
  47.             m.appendReplacement(sb,"<font face="+m.group(4)+">"+m.group(5)+"</font>");
  48.           else if(m.group(7)!=null)
  49.             m.appendReplacement(sb,"<div align="+m.group(7)+">"+m.group(8)+"</div>");
  50.           else if(m.group(10)!=null)
  51.             m.appendReplacement(sb,"<img src=pic/em"+m.group(10)+".gif>");
  52.             result = m.find();
  53.         }
  54.         m.appendTail(sb);
  55. return sb.toString();
  56.   }
  57. }