StringUtil


import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class StringUtil {
    private static Logger logger = LoggerFactory.getLogger(StringUtil.class); 
    public static String getString(String str) {
        if(null == str || str.trim().length() == 0) {
            str = "";
        }
        return str.trim();
    }
    /**
     * 
     * @Title: isEmpty 
     * @Description: 字符串是否为空 
     * @param str
     * @return
     */
    public static boolean isEmpty(String str){
        if(null == str || str.trim().length()==0){
            return true;
        }
        return false;
    }
    /**
     * 
     * @Title: isChinese 
     * @Description: 判断单个字符是否是汉字 
     * @param mychar
     * @return
     */
    public static boolean isChinese(char mychar){
        int v = (int)mychar;
        return(v>=19968 && v<=171941);
    }
    /**
     * 
     * @Title: containsChinese 
     * @Description: 判断是否包含汉字  true 是,false 否
     * @param s
     * @return
     */
    public static boolean containsChinese(String s){
        if(null == s || "".equals(s.trim())){
            return false;
        }
        for(int i = 0;i<s.length();i++){
            if(isChinese(s.charAt(i)))return true;
        }
        return false;
    }
    /**
     * 
     * @Title: isChineseAll 
     * @Description: 判断是否全为汉字,true 是,false 否
     * @param s
     * @return
     */
    public static boolean isChineseAll(String s){
        if(null==s||"".equals(s.trim())){
            return false;
        }
        for(int i= 0;i<s.length();i++){
            if(!isChinese(s.charAt(i)))return false;
        }
        return true;
    }

    /**
     * 把字符串数组转为以英文逗号分割的字符串
     * @param str 
     * @return
     */
    public static String getStringFromArray(String[] str) {
        String source = "";
        for(String s:str){
            source += s+",";
        }
        source = source.substring(0,source.length()-1);
        return source;
    }

    /**
     * 把字符串数组转为以英文逗号分割的字符串
     * @param str 
     * @return
     */
    public static String getStringFromList(List<Integer> str) {
        String source = "";
        Iterator<Integer> it = str.iterator();
        while(it.hasNext()){
            source += it.next() + ",";
        }
        source = source.substring(0,source.length()-1);
        return source;
    }

    /**
     * 把字符串数组转为以英文逗号分割的字符串
     * @param str 
     * @return
     */
    public static String getStringFromListStr(List<String> str) {
        String source = "";
        Iterator<String> it = str.iterator();
        while(it.hasNext()){
            source += it.next() + ",";
        }
        source = source.substring(0,source.length()-1);
        return source;
    }

    public static String getNameStrFromIdArray(Map<String,String> keyValue,String[] idArray){
        String nameString = "";
        for(int i = 0 ;i<idArray.length;i++){
            nameString += keyValue.get(idArray[i])+",";
        }
        nameString = nameString.substring(0,nameString.length()-1);
        return nameString;
    }

    /**
     * 
     * @Title: isEmail 
     * @Description: 字符串是否是一个 email
     * @param str
     * @return
     */
    public static boolean isEmail(String str){
        if(StringUtil.isEmpty(str)){
            return false;
        }
        String reg = "(\\w+)@(\\w+\\.\\w+)"; 
        if(str.matches(reg)){
            return true;
        }
        return false;

    }

    /**
     * 将格式为:姓名##邮箱&&姓名##邮箱...的字符串拆分为hashmap中
     * @param str
     * @return
     */
    public static LinkedHashMap<String,String> stringToMap(String str){
        LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
        String[] bb = str.split("&&");
        for(int i=0;i<bb.length;i++){
            String[] cc = bb[i].split("##");
            map.put(cc[0], cc[1]);
        }
        return map;
    }



    public static String getImpCodeStr(List<String> codes,List<String> subcodes){
        StringBuffer codebuf=new StringBuffer();
        codes.retainAll(subcodes);
        if(codes!=null&&codes.size()>0){
            codebuf.append("【");
            for(String code:codes){
                codebuf.append(code+",");
            }
            codebuf.deleteCharAt(codebuf.length() - 1);
            codebuf.append("】");
        }
        return codebuf.toString();
    }

    public static String getUpdCodeStr(List<String> codes,List<String> subcodes){
        StringBuffer codebuf=new StringBuffer();
        subcodes.retainAll(codes);
        codes.removeAll(subcodes);
        if(codes!=null&&codes.size()>0){
            codebuf.append("【");
            for(String code:codes){
                codebuf.append(code+",");
            }
            codebuf.deleteCharAt(codebuf.length() - 1);
            codebuf.append("】");
        }
        return codebuf.toString();
    }


    /**
     * 
    * @Title: cutStr 
    * @Description: 处理字符串长度,超过指定长度的部分使用"..."代替
    * @param @param str 字符串
    * @param @param length 指定长度
    * @return String    返回类型 
    * @throws
     */
    public static String cutStr(String str, int length) {
        if (str == null || "".equals(str)) {
            return "";
        }

        String resultStr = "";
        char[] ch = str.toCharArray();
        int count = ch.length;
        for (int i = 0; i < count; i++) {
            resultStr += ch[i];
            try {
                if (resultStr.getBytes("UTF-8").length >= length - 3) {
                    resultStr += "...";
                    break;
                }
            } catch (UnsupportedEncodingException e) {
                //e.printStackTrace();
            }
        }
        return resultStr;
    }
    /**
     * 
    * @Title: cutStr2 
    * @Description:  处理字符串长度,超过指定长度的部分不显示
    * @param @param str 字符串
    * @param @param length 指定长度
    * @return String    返回类型 
    * @throws
     */
    public static String cutStr2(String str, int length) {
        if (str == null || "".equals(str)) {
            return "";
        }

        String resultStr = "";
        char[] ch = str.toCharArray();
        int count = ch.length;
        for (int i = 0; i < count; i++) {
            resultStr += ch[i];
            try {
                if (resultStr.getBytes("UTF-8").length >= length) {
                    break;
                }
            } catch (UnsupportedEncodingException e) {
                //e.printStackTrace();
            }
        }
        return resultStr;
    }

    /***
     * 处理HTML,将& lt;|&lt或者& gt;|&gt转换为<和>
     * @param writer
     * @param string
     * @return
     * @throws IOException
     */
    public static String unescapeHtml(String string){
        String returnString = "";
        if(!StringUtils.isEmpty(string)){
           string = string.replaceAll("& lt;|&lt;", "<");
           returnString = string.replaceAll("& gt;|&gt;", ">");
        }else{
            string = "";
        }
        return returnString;
    }


    public static void main(String[] args){
        String aa = "&lt;p& gt;李小龙到底有多牛 武打明星自愧不如&lt;/p&gt;";
        System.out.println(unescapeHtml(aa));
    }
 
posted @ 2016-07-22 11:15  春陽  阅读(102)  评论(0)    收藏  举报