📄 codefilter.java
字号:
package com.ntsky.util;
import org.apache.log4j.Logger ;
/**
* <p>Title: Ntsky OpenSource BBS</p>
* <p>Description: 字符转换</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: WWW.FM880.COM</p>
* @author 姚君林
* @version 1.0
*/
public class CodeFilter {
private final static Logger logger = Logger.getLogger(CodeFilter.class);
/**
* 特殊字符转HTML
*/
public static String htmlEncode(String str) {
if (str == null) {
str = "";
return str;
}
str = str.trim(); //去掉首尾空格
//str = replace(str, "<", "<");
//str = replace(str, ">", ">");
str = replace(str, "\t", " ");
str = replace(str, "\r\n", "\n");
str = replace(str, "\n", "<br>");
str = replace(str, " ", " ");
//str = replace(str, "'", "'");
//str = replace(str, "\\", "/");
str = replace(str, "\"",""");
return str;
}
public static String strEncode(String str) {
if (str == null) {
str = "";
return str;
}
str = str.trim(); //去掉首尾空格
str = replace(str, "<", "<");
str = replace(str, ">", ">");
str = replace(str, "\t", " ");
str = replace(str, "\r\n", "\n");
str = replace(str, "\n", "<br>");
str = replace(str, " ", " ");
str = replace(str, "'", "'");
str = replace(str, "\\", "/");
str = replace(str, "\"",""");
return str;
}
/**
* UBB系列代码转换
*/
public static String ubbEncode(String str){
str = replaceB(str);
str = replaceI(str);
str = replaceU(str);
str = replaceCen(str);
str = replaceF(str);
str = replaceS(str);
str = replaceC(str);
str = replaceURL(str);
str = replaceIMG(str);
str = replaceEMAIL(str);
str = replaceFLASH(str);
str = replaceRM(str);
str = replaceMP(str);
str = replaceQQ(str);
str = replaceFILE(str);
logger.info("成功转换");
return str;
}
//[B]加粗
private static String replaceB(String str){
str = replace(str, "[B]", "<b>");
str = replace(str, "[/B]", "</b>");
logger.info("成功转换加粗");
return str;
}
//[I]斜线
private static String replaceI(String str){
str = replace(str, "[I]", "<i>");
str = replace(str, "[/I]", "</i>");
logger.info("成功转换斜线");
return str;
}
//[I]下划线
private static String replaceU(String str){
str = replace(str, "[U]", "<u>");
str = replace(str, "[/U]", "</u>");
logger.info("成功转换下划线");
return str;
}
//[center]居中
private static String replaceCen(String str){
str = replace(str, "[CENTER]", "<div align=center>");
str = replace(str, "[/CENTER]", "</div>");
logger.info("成功转换居中");
return str;
}
//[FONT]字体
private static String replaceF(String str){
int strHead = str.indexOf("[FONT=");
int strTail = str.indexOf("[/FONT]");
while((strHead!=-1) && (strTail!=-1)){
int strTailLength = strTail+7;
String temp = str.substring(strHead+6,strTail);
int strHeadRight = temp.indexOf("]");
String tempStr = temp.substring(0,strHeadRight);
String text = temp.substring(strHeadRight+1,temp.length());
str = str.substring(0,strHead)+"<font face=\""+tempStr+"\">"+text+"</font>"+str.substring(strTailLength,str.length());
strHead = str.indexOf("[FONT=",strTailLength);
strTail = str.indexOf("[/FONT]",strTailLength);
}
logger.info("成功转换字体");
return str;
}
//[SIZE]文字大小
private static String replaceS(String str){
int strHead = str.indexOf("[SIZE=");
int strTail = str.indexOf("[/SIZE]");
while((strHead!=-1) && (strTail!=-1)){
int strTailLength = strTail+7;
String temp = str.substring(strHead+6,strTail);
int strHeadRight = temp.indexOf("]");
String tempStr = temp.substring(0,strHeadRight);
String text = temp.substring(strHeadRight+1,temp.length());
str = str.substring(0,strHead)+"<font size=\""+tempStr+"\">"+text+"</font>"+str.substring(strTailLength,str.length());
strHead = str.indexOf("[SIZE=",strTailLength);
strTail = str.indexOf("[/SIZE]",strTailLength);
}
logger.info("成功转换文字大小");
return str;
}
//[COLOR]文字大小
private static String replaceC(String str){
int strHead = str.indexOf("[COLOR=");
int strTail = str.indexOf("[/COLOR]");
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);
String text = temp.substring(strHeadRight+1,temp.length());
str = str.substring(0,strHead)+"<font color=\""+tempStr+"\">"+text+"</font>"+str.substring(strTailLength,str.length());
strHead = str.indexOf("[COLOR=",strTailLength);
strTail = str.indexOf("[/COLOR]",strTailLength);
}
logger.info("成功转换文字大小");
return str;
}
//[URL]链接
private static String replaceURL(String str){
int strHead = str.indexOf("[URL=");
int strTail = str.indexOf("[/URL]");
while((strHead!=-1) && (strTail!=-1)){
int strTailLength = strTail+6;
String temp = str.substring(strHead+5,strTail);
int strHeadRight = temp.indexOf("]");
String tempStr = temp.substring(0,strHeadRight);
String text = temp.substring(strHeadRight+1,temp.length());
str = str.substring(0,strHead)+"<a href=\""+tempStr+"\">"+text+"</a>"+str.substring(strTailLength,str.length());
strHead = str.indexOf("[URL=",strTailLength);
strTail = str.indexOf("[/URL]",strTailLength);
}
logger.info("成功转换URL大小");
return str;
}
//[IMG]图片
private static String replaceIMG(String str){
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -