站内搜索: 请输入搜索关键词

当前页面: 开发资料首页Java 专题java实现UBB代码

java实现UBB代码

摘要: java实现UBB代码

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="272" height="86" align="center" valign="top"> </td> <td width="412" valign="top">

/*
******* java实现UBB代码 *************
*****************************************
* 源文件名: UbbCode.java
*
* 作者:梦想年华
* Email:fanwsp@126.com
* HomePage:http://wsp.hniuca.net
* QQ:122142023
* CopyRight(c)2005-2006 by DreamTime
*
*/
package dreamtime.guestbook; //指定类所在的包
import java.util.regex.Matcher; //导入所需要的类
import java.util.regex.Pattern;

</td> </tr> </table>

public class UbbCode //类定义
{

private String source; //待转化的HTML代码字符串
private String ubbTags[]; //UBB标记数组
private String htmlTags[]; //HTML标记数组

//初始化,分别为UBB标记数组和HTML标记数组赋值
public UbbCode()
{
byte byte0 = 74;
source = new String();
ubbTags = new String[byte0];
htmlTags = new String[byte0];
ubbTags[0] = "[b]";
htmlTags[0] = "";
ubbTags[1] = "[/b]";
htmlTags[1] = "
";
ubbTags[2] = "[i]";
htmlTags[2] = "";
ubbTags[3] = "[/i]";
htmlTags[3] = "
";
ubbTags[4] = "[quote]";
htmlTags[4] = "

border-color:#999999\">
";
ubbTags[5] = "[/quote]";
htmlTags[5] = "


";
ubbTags[6] = "[/size]";
htmlTags[6] = "";
ubbTags[7] = "[size=6]";
htmlTags[7] = "";
ubbTags[8] = "[size=8]";
htmlTags[8] = "";
ubbTags[9] = "[size=10]";
htmlTags[9] = "";
ubbTags[10] = "[size=12]";
htmlTags[10] = "";
ubbTags[11] = "[size=14]";
htmlTags[11] = "";
ubbTags[12] = "[size=18]";
htmlTags[12] = "";
ubbTags[13] = "[size=24]";
htmlTags[13] = "";
ubbTags[14] = "[size=36]";
htmlTags[14] = "";

//字体
ubbTags[15] = "[/font]";
htmlTags[15] = "
";
ubbTags[16] = "[font=Arial]";
htmlTags[16] = "";
ubbTags[17] = "[font=Arial Black]";
htmlTags[17] = "";
ubbTags[18] = "[font=Verdana]";
htmlTags[18] = "";
ubbTags[19] = "[font=Times New Roman]";
htmlTags[19] = "";
ubbTags[20] = "[font=Garamond]";
htmlTags[20] = "";
ubbTags[21] = "[font=Courier New]";
htmlTags[21] = "";
ubbTags[22] = "[font=Webdings]";
htmlTags[22] = "";
ubbTags[23] = "[font=Wingdings]";
htmlTags[23] = "";
ubbTags[24] = "[font=隶书]";
htmlTags[24] = "";
ubbTags[25] = "[font=幼圆]";
htmlTags[25] = "";
ubbTags[26] = "[font=方正舒体]";
htmlTags[26] = "";
ubbTags[27] = "[font=方正姚体]";
htmlTags[27] = "";
ubbTags[28] = "[font=仿宋_GB2312]";
htmlTags[28] = "";
ubbTags[29] = "[font=黑体]";
htmlTags[29] = "";
ubbTags[30] = "[font=华文彩云]";
htmlTags[30] = "";
ubbTags[31] = "[font=华文细黑]";
htmlTags[31] = "";
ubbTags[32] = "[font=华文新魏]";
htmlTags[32] = "";
ubbTags[33] = "[font=华文中宋]";
htmlTags[33] = "";
ubbTags[34] = "[font=华文行楷]";
htmlTags[34] = "";
ubbTags[35] = "[font=楷体_GB2312]";
htmlTags[35] = "";
ubbTags[36] = "[font=隶书]";
htmlTags[36] = "";
ubbTags[37] = "[font=华文楷体]";
htmlTags[37] = "";
ubbTags[38] = "[font=宋体]";
htmlTags[38] = "";
ubbTags[39] = "[font=新宋体";
htmlTags[39] = "";
ubbTags[40] = "[font=幼圆";
htmlTags[40] = "";

//字体颜色
ubbTags[41] = "[red]";
htmlTags[41] = "";
ubbTags[42] = "[/red]";
htmlTags[42] = "
";
ubbTags[43] = "[blue]";
htmlTags[43] = "";
ubbTags[44] = "[/blue]";
htmlTags[44] = "
";
ubbTags[45] = "[yellow]";
htmlTags[45] = "";
ubbTags[46] = "[/yellow]";
htmlTags[46] = "
";
ubbTags[47] = "[green]";
htmlTags[47] = "";
ubbTags[48] = "[/green]";
htmlTags[48] = "
";

ubbTags[49] = "[f]";
htmlTags[49] = "";

//标题
ubbTags[50] = "[h1]";
htmlTags[50] = "

";
ubbTags[51] = "[/h1]";
htmlTags[51] = "

";
ubbTags[52] = "[h2]";
htmlTags[52] = "

";
ubbTags[53] = "[/h2]";
htmlTags[53] = "

";
ubbTags[54] = "[h3]";
htmlTags[54] = "

";
ubbTags[55] = "[/h3]";
htmlTags[55] = "

";
ubbTags[56] = "[h4]";
htmlTags[56] = "

";
ubbTags[57] = "[/h4]";
htmlTags[57] = "

";
ubbTags[58] = "[h5]";
htmlTags[58] = "
";
ubbTags[59] = "[/h5]";
htmlTags[59] = "
";
ubbTags[60] = "[h6]";
htmlTags[60] = "
";
ubbTags[61] = "[/h6]";
htmlTags[61] = "
";
ubbTags[62] = "[hr]";
htmlTags[62] = "
";
ubbTags[63] = "[img]";
htmlTags[63] = "
ubbTags[64] = "[/img]";
htmlTags[64] = "\">
";
ubbTags[65] = "[center]";
htmlTags[65] = "
";
ubbTags[66] = "[/center]";
htmlTags[66] = "
";

ubbTags[67] = "[/f]";
htmlTags[67] = "
";
ubbTags[68] = "[left]";
htmlTags[68] = "
";
ubbTags[69] = "[/left]";
htmlTags[69] = "
";
ubbTags[70] = "[right]";
htmlTags[70] = "
";
ubbTags[71] = "[/right]";
htmlTags[71] = "
";
ubbTags[72] = "[u]";
htmlTags[72] = "";
ubbTags[73] = "[/u]";
htmlTags[73] = "
";

}

private String replace(String s, String s1, String s2) {
StringBuffer stringbuffer = new StringBuffer();
for(int i = 0; i < s1.length(); i++) {
char c = s1.charAt(i);
switch(c) {
case 91: // '['
stringbuffer.append("\\[");
break;

case 93: // ']'
stringbuffer.append("\\]");
break;

default:
stringbuffer.append(c);
break;
}
}

Pattern pattern = Pattern.compile(stringbuffer.toString());
Matcher matcher = pattern.matcher(s);
StringBuffer stringbuffer1 = new StringBuffer();
for(boolean flag = matcher.find(); flag; flag = matcher.find())
matcher.appendReplacement(stringbuffer1, s2);

return matcher.appendTail(stringbuffer1).toString();
}

private String replaceNormalUBBCode(String s)
{
String s1 = new String(s);
for(int i = 0; i < ubbTags.length; i++)
s1 = replace(s1, ubbTags[i], htmlTags[i]);

return s1;
}

private String replaceURL(String s)
{
StringBuffer stringbuffer = new StringBuffer(s);
String s1 = new String();
int i = s.indexOf("[url]");
int j = s.indexOf("[/url]");
if(i != -1 && j != -1 && i < j)
{
String s2 = s.substring(i + 5, j);
String s3 = "" + s2 + "";
stringbuffer.replace(i, j + 6, s3);
}
return stringbuffer.toString();
}

private String replaceEmail(String s)
{
StringBuffer stringbuffer = new StringBuffer(s);
String s1 = new String();
int i = s.indexOf("[email]");
int j = s.indexOf("[/email]");
if(i != -1 && j != -1 && i < j)
{
String s2 = s.substring(i + 7, j);
String s3 = "" + s2 + "";
stringbuffer.replace(i, j + 8, s3);
}
return stringbuffer.toString();
}

public void setSource(String s)
{
source = s;
}

public String getResult()
{
return source;
}

public void run()
{
for(source = replaceNormalUBBCode(source); source.indexOf("[url]") != -1 && source.indexOf("[/url]") != -1;
source = replaceURL(source));
for(; source.indexOf("[email]") != -1 && source.indexOf("[/email]") != -1; source = replaceEmail(source));
}
}

</td> </tr> <tr>


↑返回目录
前一篇: XML考试系统
后一篇: 梦想年华新闻系统