import java.io.UnsupportedEncodingException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringEscapeUtils;
import sun.misc.BASE64Encoder;
/**
* 字元串的幫助類
*/
public class StringUtils extends org.apache.commons.lang3.StringUtils {
private static final String CHARSET_NAME = "UTF-8";
/**
* 轉換為位元組數組
* @param str
* @return
*/
public static byte[] getBytes(String str){
if (str != null){
try {
return str.getBytes(CHARSET_NAME);
} catch (UnsupportedEncodingException e) {
return null;
}
}else{
return null;
}
}
/**
* 位元組數組轉換為字元串。以UTF-8字元集
* @param bytes
* @return
*/
public static String toString(byte[] bytes){
try {
return new String(bytes, CHARSET_NAME);
} catch (UnsupportedEncodingException e) {
return EMPTY;
}
}
/**
* 是否包含字元串
* @param str 驗證字元串
* @param strs 字元串組
* @return 包含傳回true
*/
public static boolean inString(String str, String... strs){
if (str != null){
for (String s : strs){
if (str.equals(trim(s))){
return true;
}
}
}
return false;
}
/**
* 替換掉HTML标簽方法
*/
public static String replaceHtml(String html) {
if (isBlank(html)){
return "";
}
String regEx = "<.+?>";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(html);
String s = m.replaceAll("");
return s;
}
/**
* 縮略字元串(不區分中英文字元)
* @param str 目标字元串
* @param length 截取長度
* @return
*/
public static String abbr(String str, int length) {
if (str == null) {
return "";
}
try {
StringBuilder sb = new StringBuilder();
int currentLength = 0;
for (char c : replaceHtml(StringEscapeUtils.unescapeHtml4(str)).toCharArray()) {
currentLength += String.valueOf(c).getBytes("GBK").length;
if (currentLength <= length - 3) {
sb.append(c);
} else {
sb.append("...");
break;
}
}
return sb.toString();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "";
}
/**
* 轉換為Double類型
*/
public static Double toDouble(Object val){
if (val == null){
return 0D;
}
try {
return Double.valueOf(trim(val.toString()));
} catch (Exception e) {
return 0D;
}
}
/**
* 轉換為Float類型
*/
public static Float toFloat(Object val){
return toDouble(val).floatValue();
}
/**
* 轉換為Long類型
*/
public static Long toLong(Object val){
return toDouble(val).longValue();
}
//
//從找布拉來的
//
/**
* 判斷是否指定字元串為空字元串(null或者長度為0
*
* @param stringValue
* @return boolean
*/
public static boolean isEmpty(String stringValue) {
if (stringValue == null || stringValue.trim().length() < 1
|| stringValue.trim().equalsIgnoreCase("null")) {
return true;
} else {
return false;
}
}
/**
* 判斷是否指定字元串為空字元串(null或者長度為0
*
* @param stringValue
* @return boolean
*/
public static boolean isNotEmpty(String stringValue) {
if (stringValue == null || stringValue.trim().length() < 1
|| stringValue.trim().equalsIgnoreCase("null")) {
return false;
} else {
return true;
}
}
/**
* 判斷是否指定字元串為空字元串(null或者長度為0
*
* @param stringValue
* @return boolean
*/
public static boolean isEmptyString(String stringValue) {
if (stringValue == null || stringValue.trim().length() < 1
|| stringValue.trim().equalsIgnoreCase("null")) {
return true;
} else {
return false;
}
}
/**
* 将字元串轉換成BASE64編碼
*
* @param src
* @return
*/
public static String base64Encode(String src) {
return isNULL(src) ? "" : base64Encode(src
.getBytes());
}
/**
* 将字元串轉換成BASE64編碼
*
* @param byte[]
* @return
*/
public static String base64Encode(byte b[]) {
return (null == b || b.length < 1) ? "" : new BASE64Encoder().encode(b);
}
public static boolean isNULL(Object o) {
if (o == null)
return true;
if (o instanceof String)
return isEmpty((String) o);
return false;
}
public static boolean isNotNULL(Object o) {
return !isNULL(o);
}
}