1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java ubb_月光软件站 - 编程文档 - Java - JAVA写的简单UBB类

java ubb_月光软件站 - 编程文档 - Java - JAVA写的简单UBB类

时间:2022-11-10 01:18:52

相关推荐

java ubb_月光软件站 - 编程文档 - Java - JAVA写的简单UBB类

最近做论坛碰到了UBB的问题,这个很大众化的东西,怎么没有JAVA写的解释器呢,实在是该写一个。下面的这个不全,但是可以应付一下。

import java.util.*;

public class HTMLString{

public HTMLString(){}

public static String htmlEntities(String str){

return UBB(str);

}

public static boolean hasSpecialCharacter(String str){

/*用于合法性检查

if(str.indexOf("\\")!=-1){

return false;

}

if(str.indexOf("'")!=-1){

return false;

}

if(str.indexOf('"')!=-1){

return false;

}

if(str.indexOf("

return false;

}

if(str.indexOf(">")!=-1){

return false;

}

*/

return true;

}

public static String UBB(String fString){

return (ChkString(FormatStr(fString)));

}

//屏蔽HTML代码,并处理回车和换行

public static String FormatStr(String fString){

/*

fString = repstr(fString, "‘","'");

fString = repstr(fString, "\"","“");

fString = repstr(fString, "<","

fString = repstr(fString, "<","

fString = repstr(fString, ">",">");

fString = repstr(fString, " ","\r");

*/

fString = repstr(fString, "´","'");

fString = repstr(fString, ""","\"");

fString = repstr(fString, "<","

fString = repstr(fString, ">",">");

fString = repstr(fString, ""," ");

fString = repstr(fString, " ","\r");

return (fString);

}

//把UBB代码转换成HTML代码以便正常显示

public static String ChkString(String fString){

fString = fString.trim();

if (fString.equals(""))

fString = " ";

else{

fString = doCode(fString, "", "","","");

fString = doCode(fString, "", "", "", "");

fString = doCode(fString, "", "", "", "");

fString = doCode(fString, "[red]", "[/red]", "", "");

fString = doCode(fString, "[green]", "[/green]", "", "");

fString = doCode(fString, "[blue]", "[/blue]", "", "");

fString = doCode(fString, "[white]", "[/white]", "", "");

fString = doCode(fString, "[purple]", "[/purple]", "", "");

fString = doCode(fString, "[yellow]", "[/yellow]", "", "");

fString = doCode(fString, "[violet]", "[/violet]", "", "");

fString = doCode(fString, "[brown]", "[/brown]", "", "");

fString = doCode(fString, "[black]", "[/black]", "", "");

fString = doCode(fString, "[pink]", "[/pink]", "", "");

fString = doCode(fString, "[orange]", "[/orange]", "", "");

fString = doCode(fString, "[gold]", "[/gold]", "", "");

fString = doCode(fString, "

", "

", "

", "

");

fString = doCode(fString, "

", "

", "

", "

");

fString = doCode(fString, "

", "

", "

", "

");

fString = doCode(fString, "

", "

", "

", "

");

fString = doCode(fString, "

", "
", "
", "
");

fString = doCode(fString, "

", "
", "
", "
");

fString = doCode(fString, "[size=1]", "[/size=1]", "", "");

fString = doCode(fString, "[size=2]", "[/size=2]", "", "");

fString = doCode(fString, "[size=3]", "[/size=3]", "", "");

fString = doCode(fString, "[size=4]", "[/size=4]", "", "");

fString = doCode(fString, "[size=5]", "[/size=5]", "", "");

fString = doCode(fString, "[size=6]", "[/size=6]", "", "");

fString = doCode(fString, "[left]", "[/left]", "

", "");

fString = doCode(fString, "

", "", "", "");

fString = doCode(fString, "

", "", "", "");

fString = doCode(fString, "

", "

", "

");

fString = doCode(fString, "[url]", "[/url]", "", "");

fString = addlink(fString);

fString = addBr(fString);

}

return (fString);

}

//方便的替换函数

public static String doCode(String fString,String fOTag, String fCTag, String fROTag, String fRCTag){

fString = repstr(fString, fROTag, fOTag);

fString = repstr(fString, fRCTag, fCTag);

return (fString);

}

//处理链接

public static String addlink(String str){

String hrefTagPre = "";

String hrefTagLast = "";

String hrefTxt = "";

String strReturn = "";

int iSearchedFrom = 0 ;

int first = 0;

int last = 0;

while (( iSearchedFrom=str.indexOf( hrefTagPre , iSearchedFrom) ) != -1 ){

first = iSearchedFrom + 3;

if (( iSearchedFrom=str.indexOf( hrefTagLast , iSearchedFrom) ) != -1 ){

last = iSearchedFrom;

iSearchedFrom += 4;

strReturn = str.substring( first, last);

if (strReturn.indexOf( "", 0) != -1){

strReturn = repstr ( strReturn , "", "");

}

hrefTxt = "" + strReturn + "";

strReturn = str.substring( first - 3 , iSearchedFrom);

str = repstr(str, hrefTxt ,strReturn );

iSearchedFrom =0;

}else

break;

}

return (str);

}

public static String fd(String str){

String fd=repstr(str,"''","'");

return fd;

}

public static String repstr(String str, String strDen, String strSrc){

int iLen = str.length();

int iDenLen = strDen.length();

int iSrcLen = strSrc.length();

String strReturn = "";

int iSearchedFrom = 0 ;

int iPrevSearchedFrom = 0;

while ( (iSearchedFrom = str.indexOf(strSrc , iSearchedFrom)) != -1 ){

strReturn += str.substring(iPrevSearchedFrom, iSearchedFrom);

strReturn += strDen;

iSearchedFrom += iSrcLen;

iPrevSearchedFrom = iSearchedFrom;

}

if ( iPrevSearchedFrom !=0 )

strReturn += str.substring( str.lastIndexOf(strSrc) + iSrcLen , str.length());

else

strReturn = str;

return(strReturn);

}

public static String RemoveComment(String Content){

String makeContent=new String();

StringTokenizer strToken=new StringTokenizer(Content,"\n");

String tempToken=null;

while(strToken.hasMoreTokens()){

tempToken=strToken.nextToken();

if(tempToken.indexOf(":")!=0)

makeContent=makeContent+tempToken+"\n";

}

return makeContent;

}

public static String addBr(String Content){

String makeContent=new String();

StringTokenizer strToken=new StringTokenizer(Content,"\n");

while(strToken.hasMoreTokens()){

String sNext = strToken.nextToken();

makeContent=makeContent + sNext.substring(0,sNext.length()-1) + "

";

}

return makeContent;

}

public static String delBr(String Content){

String makeContent=new String();

StringTokenizer strToken=new StringTokenizer(Content,"

");

while(strToken.hasMoreTokens()){

String sNext = strToken.nextToken();

makeContent=makeContent + sNext.substring(0,sNext.length()-4) + "\n";

}

return makeContent;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。