facefilter.java

来自「jsp+javabean写的论坛」· Java 代码 · 共 99 行

JAVA
99
字号
package com.alumni.bean;
import java.util.regex.*;

public class FaceFilter
{
	//定义心情列表数组
	private String[] faceList;
	//定义要替换的心情图片列表数组
	private String[] faceImage;
	//定义数据源
	private String source;
	
	//构造器
	public FaceFilter()
	{
		//初始化数组
		int max=20;
		faceList=new String[max];
		faceImage=new String[max];
		
		//开始定义心情和将要替换的心情图片
		for(int i=0;i<max;i++)
		{
			if(i<10)
			{
				faceList[i]=":em0"+i;
				faceImage[i]="<img src=\"image/face/0"+i+".gif\">";
			}
			else
			{
				faceList[i]=":em"+i;
				faceImage[i]="<img src=\"image/face/"+i+".gif\">";
			}
		}
	}
	
	//运行
	public void run()
	{
		this.source=this.replaceNormalFace(this.source);
		this.source=this.replaceSpecialFace(this.source);
	}
	
	//核心替换方法
	private String replace(String input,String faceList,String faceImage)
	{
		Pattern p=Pattern.compile(faceList);
		Matcher m=p.matcher(input);
		StringBuffer sb=new StringBuffer();
		boolean result=m.find();
		while(result)
		{
			m.appendReplacement(sb,faceImage);
			result=m.find();
		}
		return m.appendTail(sb).toString();
	}
	
	//替换一般心情
	private String replaceNormalFace(String input)
	{
		String result=new String(input);
		for(int i=0;i<faceList.length;i++)
		{
			result=this.replace(result,this.faceList[i],this.faceImage[i]);
		}
		return result;
	}
	
	//替换特殊的表情
	private String replaceSpecialFace(String input)
	{
		String result=new String(input);
		result=this.replace(result,":P","<img src=\"image/face/04.gif\">");//:P
		result=this.replace(result,":O","<img src=\"image/face/03.gif\">");//:O
		result=this.replace(result,":S","<img src=\"image/face/07.gif\">");//:S
		result=this.replace(result,":\\)","<img src=\"image/face/00.gif\">");//:)
		result=this.replace(result,":\\(","<img src=\"image/face/18.gif\">");//:(
		result=this.replace(result,":D","<img src=\"image/face/01.gif\">");//:D
		result=this.replace(result,":\\|","<img src=\"image/face/17.gif\">");//:|
		result=this.replace(result,":Y","<img src=\"image/face/32.gif\">");//:Y
		result=this.replace(result,":N","<img src=\"image/face/33.gif\">");//:N
		result=this.replace(result,":\\[","<img src=\"image/face/31.gif\">");//:[
		
		return result;
	}
	
	//设定数据源
	public void setSource(String source)
	{
		this.source=source;
	}
	
	//获得运行结果
	public String getResult()
	{
		return this.source;
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?