📄 codefilter.java
字号:
int strHead = str.indexOf("[IMG]");
int strTail = str.indexOf("[/IMG]");
while((strHead!=-1) && (strTail!=-1)){
int strTailLength = strTail+6;
String temp = str.substring(strHead+5,strTail);
String text = temp.substring(strHead+5,temp.length());
str = str.substring(0,strHead)+"<img src=\""+text+"\"/>"+str.substring(strTailLength,str.length());
strHead = str.indexOf("[IMG]",strTailLength);
strTail = str.indexOf("[/IMG]",strTailLength);
}
logger.info("成功转换IMG大小");
return str;
}
//[EMAIL]email地址
private static String replaceEMAIL(String str){
int strHead = str.indexOf("[EMAIL]");
int strTail = str.indexOf("[/EMAIL]");
while((strHead!=-1) && (strTail!=-1)){
int strTailLength = strTail+8;
String temp = str.substring(strHead+7,strTail);
String text = temp.substring(strHead+5,temp.length());
str = str.substring(0,strHead)+"<a href=\"mailto:"+text+"\">text</a>"+str.substring(strTailLength,str.length());
strHead = str.indexOf("[EMAIL]",strTailLength);
strTail = str.indexOf("[/EMAIL]",strTailLength);
}
logger.info("成功转换EMAIL大小");
return str;
}
//[FLASH]flash
private static String replaceFLASH(String str){
int strHead = str.indexOf("[FLASH=");
int strTail = str.indexOf("[/FLASH]");
while((strHead!=-1) && (strTail!=-1)){
int strTailLength = strTail+8;
String temp = str.substring(strHead+7,strTail);
int strHeadRight = temp.indexOf("]");
String tempStr = temp.substring(0,strHeadRight);
int pos = temp.indexOf(",");
String width = tempStr.substring(0,pos);
String height = tempStr.substring(pos+1,strHeadRight);
//fontText设置字体的中间文字
String text = temp.substring(strHeadRight+1,temp.length());
str = str.substring(0,strHead)+"<embed src=\""+text+"\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width="+width+" height="+height+"></embed>"+str.substring(strTailLength,str.length());
strHead = str.indexOf("[FLASH=",strTailLength);
strTail = str.indexOf("[/FLASH]",strTailLength);
}
logger.info("成功转换FLUSH大小");
return str;
}
//[RM]RM
private static String replaceRM(String str){
int strHead = str.indexOf("[RM=");
int strTail = str.indexOf("[/RM]");
while((strHead!=-1) && (strTail!=-1)){
int strTailLength = strTail+5;
String temp = str.substring(strHead+4,strTail);
int strHeadRight = temp.indexOf("]");
String tempStr = temp.substring(0,strHeadRight);
int pos = temp.indexOf(",");
String width = tempStr.substring(0,pos);
String height = tempStr.substring(pos+1,strHeadRight);
String text = temp.substring(strHeadRight+1,temp.length());
str = str.substring(0,strHead)+"<OBJECT classid=CLSID:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA height="+height+" width="+width+" id=RVOCX name=rvstatus><param name='_ExtentX' value='8149'><param name='_ExtentY' value='794'><param name='AUTOSTART' value='1'><param name='SHUFFLE' value='0'><param name='PREFETCH' value='0'><param name='NOLABELS' value='0'><param name='SRC' value='"+text+"'><embed SRC='"+text+"' type='audio/x-pn-realaudio-plugin' width='315' height='59' controls='ControlPanel,StatusBar' console='cons' name='rvstatus'><param name='CONTROLS' value='Imagewindow,ControlPanel,StatusBar'><param name='CONSOLE' value='cons'><param name='LOOP' value='0'><param name='NUMLOOP' value='0'><param name='CENTER' value='0'><param name='MAINTAINASPECT' value='0'><param name='BACKGROUNDCOLOR' value='#000000'></embed></OBJECT>"+str.substring(strTailLength,str.length());
strHead = str.indexOf("[RM=",strTailLength);
strTail = str.indexOf("[/RM]",strTailLength);
}
logger.info("成功转换RM");
return str;
}
//[MP]MP
private static String replaceMP(String str){
int strHead = str.indexOf("[MP=");
int strTail = str.indexOf("[/MP]");
while((strHead!=-1) && (strTail!=-1)){
int strTailLength = strTail+5;
String temp = str.substring(strHead+4,strTail);
int strHeadRight = temp.indexOf("]");
String tempStr = temp.substring(0,strHeadRight);
int pos = temp.indexOf(",");
String width = tempStr.substring(0,pos);
String height = tempStr.substring(pos+1,strHeadRight);
String text = temp.substring(strHeadRight+1,temp.length());
String str1 = "<object classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95' codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701' height='"+height+"' id='nstv' style='left: 0px; top: 0px; border: 7px none rgb(192,192,192)' type='application/x-oleobject' width='"+width+"' standby='Loading Microsoft Windows Media Player components...'>";
String str2 = "<param name='AudioStream' value='-1'><param name='AutoSize' value='0'><param name='AutoStart' value='-1'><param name='AnimationAtStart' value='0'><param name='AllowScan' value='-1'><param name='AllowChangeDisplaySize' value='-1'><param name='AutoRewind' value='0'><param name='Balance' value='0'><param name='BufferingTime' value='5'><param name='ClickToPlay' value='-1'><param name='CursorType' value='0'><param name='CurrentPosition' value='-1'><param name='CurrentMarker' value='0'><param name='DisplayBackColor' value='0'><param name='DisplayForeColor' value='16777215'><param name='DisplayMode' value='0'><param name='DisplaySize' value='4'><param name='Enabled' value='-1'><param name='EnableContextMenu' value='0'><param name='EnablePositionControls' value='-1'><param name='EnableFullScreenControls' value='0'><param name='EnableTracker' value='-1'>";
String str3 = "<param name='Filename' value='"+text+"'><param name='InvokeURLs' value='-1'><param name='Language' value='-1'><param name='Mute' value='0'><param name='PlayCount' value='1'><param name='PreviewMode' value='0'><param name='Rate' value='1'><param name='SelectionStart' value='-1'><param name='SelectionEnd' value='-1'><param name='SendOpenStateChangeEvents' value='-1'><param name='SendWarningEvents' value='-1'><param name='SendErrorEvents' value='-1'><param name='SendKeyboardEvents' value='0'><param name='SendMouseClickEvents' value='0'><param name='SendMouseMoveEvents' value='0'><param name='SendPlayStateChangeEvents' value='-1'><param name='ShowCaptioning' value='0'><param name='ShowControls' value='1'><param name='ShowAudioControls' value='-1'><param name='ShowDisplay' value='0'>";
String str4 = "<param name='ShowGotoBar' value='0'><param name='ShowPositionControls' value='0'><param name='ShowStatusBar' value='0'><param name='ShowTracker' value='-1'><param name='TransparentAtStart' value='-1'><param name='VideoBorderWidth' value='0'><param name='VideoBorderColor' value='0'><param name='VideoBorder3D' value='0'><param name='Volume' value='-60'><param name='WindowlessVideo' value='0'></object>";
str = str.substring(0,strHead)+str1+str2+str3+str4+str.substring(strTailLength,str.length());
strHead = str.indexOf("[MP=",strTailLength);
strTail = str.indexOf("[/MP]",strTailLength);
}
logger.info("成功转换mp");
return str;
}
//QQ表情图标
private static String replaceQQ(String str){
int strHead = str.indexOf("[qq");
int strTail = str.indexOf("]");
while((strHead!=-1) && (strTail!=-1)){
int strTailLength = strTail+1;
String temp = str.substring(strHead+3,strTail);
str = str.substring(0,strHead)+"<img src=\"../images/qqface/"+temp+".gif\"/>"+str.substring(strTailLength,str.length());
strHead = str.indexOf("[EMAIL]",strTailLength);
strTail = str.indexOf("[/EMAIL]",strTailLength);
}
logger.info("成功转换EMAIL大小");
return str;
}
//文件链接图标
private static String replaceFILE(String str){
int strHead = str.indexOf("[FILE]");
int strTail = str.indexOf("[/FILE]");
while((strHead!=-1) && (strTail!=-1)){
int strTailLength = strTail+7;
String temp = str.substring(strHead+6,strTail);
String text = temp.substring(strHead+6,temp.length());
str = str.substring(0,strHead)+"<a href=\".."+text+"\">"+text+"</a>"+str.substring(strTailLength,str.length());
strHead = str.indexOf("[FILE]",strTailLength);
strTail = str.indexOf("[/FILE]",strTailLength);
}
logger.info("成功转换EMAIL大小");
return str;
}
/**
* 反向转换
*/
public static String unEncode(String s) {
s = replace(s, "<br>", "\n");
s = replace(s, " ", " ");
//s = replace(s, "",);
return s;
}
/**
* 字符串转换方法
* @param source String
* @param oldString String
* @param newString String
* @return String
*/
public static String replace(String source, String oldString,
String newString) {
StringBuffer output = new StringBuffer();
int lengthOfsource = source.length(); //源字符串长度
int lengthOfold = oldString.length(); //老字符串长度
int posStart = 0; //开始搜索位置
int pos; //搜索到的老字符串的位置
//source.indexOf(oldString,posStart)检索某子串在字符串postStart以后第一次出现的位置,如果未找到就返回一个-1。
while ( (pos = source.indexOf(oldString, posStart)) >= 0) { //得到字符串的位置(eg:如果有<br>就执行,没有就跳出,不要处理。)
//将以posStart起始以pos-1结束之间的内容拷贝到另一个字符串中。因为posStar从0开始的。
output.append(source.substring(posStart, pos)); //append方法将文本添加到当前StringBuffer对象内容的结尾。
output.append(newString); //替换成新字符串
posStart = pos + lengthOfold; //位置也变为找到了之后的位置,pos为得到第一次出现字符的位置,lengthold为字符的长度
}
if (posStart < lengthOfsource) {
//source.substring(posStart)以lengthOfsource开始的字符串拷贝到列一个字符串中
output.append(source.substring(posStart));
}
//这个方法将其内容转换成一个可以被用于输出的字符串对象。它允许操作对应的文本用于输出或数据存储。
return output.toString();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -