没事翻了翻以前写的代码,感觉这个比较常用,贴出来一遍日后查询.
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* String类型的工具类,用于进行web开发中的字符格式转换。
* @author 吕健
* @version 1.0
* @since 2008-11-26
* notes:
* 1.提供toHtml()方法,用于将字符串中的特殊字符转换成html代码<br />
* 2.提供toGBK()方法,用于将'ISO-8859-1'格式编码的字符转换成GBK格式<br />
* 3.提供toUTF8()方法,用于将'ISO-8859-1'格式编码的字符转换成UTF-8格式
*/
public final class StringUtility {
private StringUtility() {
}
/**
* "ISO-8859-1"格式字符转换成"GBK"
* @param str "ISO-8859-1"格式字符
* @return "GBK"格式字符
*/
public static String toUTF8(String str) {
try {
str = new String(str.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}
return str;
}
/**
* 格式化显示日期
* @param date java.util.Date
* @param format 日期格式,如: yyyy年MM月dd日
* @return String
*/
public static String formatDate(Date date, String format) {
SimpleDateFormat dateFormat = new SimpleDateFormat();
return dateFormat.format(date);
}
/**
* "ISO-8859-1"格式字符转换成"GBK"
* @param str "ISO-8859-1"格式字符
* @return "UTF-8"格式字符
*/
public static String toGBK(String str) {
try {
str = new String(str.getBytes("ISO-8859-1"), "gb2312");
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
}
return str;
}
/**
* 将普通文本转换成html文本,避免html显示错误现象
* @param str String
* @return String
*/
public static String toHtml(String str) {
if(str == null)
return null;
StringBuffer sb = new StringBuffer();
//获取字符串的长度
int len = str.length();
//转换特殊字符串
for(int i = 0; i < len; i++) {
char c = str.charAt(i);
switch(c) {
case ' ':
sb.append(" ");
break;
case '\n':
sb.append("<br>");
break;
case '\r':
break;
case '\'':
sb.append("'");
break;
case '<':
sb.append("<");
break;
case '>':
sb.append(">");
break;
case '&':
sb.append("&");
break;
case '"':
sb.append(""");
break;
case '\\':
sb.append("\");
break;
default:
sb.append(c);
}//end switch
}//end for
return sb.toString();
}
// public static void main(String[] args) {
// String test = "<thml>哈哈asdf \" \\ 噢噢 ";
// System.out.println(test);
// System.out.println(StringUtility.toHtml(test));
// }
}