TextStyleFilter.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 TextStyleFilter extends filter {
  12.   public TextStyleFilter(String s) {
  13.     super(s);
  14.   }
  15.   public TextStyleFilter() {
  16.   }
  17.   public String convertString(){
  18.     return this.getTextFilter();
  19.   }
  20.   public String getTextFilter(){
  21.     String tempString=s;
  22.     for(int i=0;i<5;i++){
  23.       tempString=textStyleConverter(tempString);
  24.       //System.out.println(tempString);
  25.     }
  26.     return tempString;
  27.   }
  28.   public String textStyleConverter(String s){
  29. Pattern p;
  30. Matcher m;
  31. StringBuffer sb;
  32. boolean result;
  33.         p = Pattern.compile(
  34.             "\[(b)\](.[^\[]*)\[\/(b)\]|"+
  35.             "\[(i)\](.[^\[]*)\[\/(i)\]|"+
  36.             "\[(u)\](.[^\[]*)\[\/(u)\]|"+
  37.             "\[(fly)\](.[^\[]*)\[\/(fly)\]|"+
  38.             "\[(center)\](.[^\[]*)\[\/(center)\]",
  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,"<b>"+m.group(2)+"</b>");
  46.           else if(m.group(4)!=null)
  47.             m.appendReplacement(sb,"<i>"+m.group(5)+"</i>");
  48.           else if(m.group(7)!=null)
  49.             m.appendReplacement(sb,"<u>"+m.group(8)+"</u>");
  50.           else if(m.group(10)!=null)
  51.             m.appendReplacement(sb,"<center>"+m.group(11)+"</center>");
  52.           result = m.find();
  53.         }
  54.         m.appendTail(sb);
  55. return sb.toString();
  56. }
  57. }