天天看點

Java 字元串常用操作

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);
	}
}