java String字符串相关的方法(可总结到工具类中)

1、如果数据null或者""则替换为new_str

public static String getNotNullStringValue(Object str, String new_str) {
        if (isEmpty(str)) {
            return new_str;
        }
        return str.toString();
    }

2、判断整形数据null替换new_str

public static int getNotNullIntValue(Object str, int new_str) {
        if (isEmpty(str)) {
            return new_str;
        }
        int n_str = 0;
        try {
            n_str = Integer.parseInt(str.toString());
        } catch (NumberFormatException e) {
            n_str = new_str;
        }
        return n_str;
    }

3、缩略字符串(不区分中英文字符)

public static String abbr(String str, int length) {
        if (isEmpty(str)) {
            return "";
        }
        try {
            StringBuilder sb = new StringBuilder();
            int currentLength = 0;
            for (char c : 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 "";
    }

4、截取字符串 并补充后缀

public static String abbr(String str, int len, String suffix) {
        if (isEmpty(str)) {
            return "";
        }
        try{
            int counterOfDoubleByte = 0;
            byte[] b = str.getBytes("GBK");
            if(b.length <= len){
                return str;
            }
            for(int i = 0; i < len; i++){
                if(b[i] < 0){
                    counterOfDoubleByte++;
                }
            }
            if(counterOfDoubleByte % 2 == 0){
                return new String(b, 0, len, "GBK") + suffix;
            }else{
                return new String(b, 0, len - 1, "GBK") + suffix;
            }
        }catch(Exception e){
            return "";
        }
    }

5、替换掉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;
    }

6、中文转换成unicode码

public static String encodeUnicode(String cnStr) {
        String s1 = "";
        for (int i = 0; i < cnStr.length(); i++) {
            String hexB = Integer.toHexString(cnStr.charAt(i) & 0xffff);
            if (hexB.length() <= 2) {
                hexB = "00" + hexB;
            }
            s1 += "\\u" + hexB;
        }
        return s1;
    }

7、unicode码 转换成 中文

public static String decodeUnicode(String unicodeStr) {
        int n = unicodeStr.length() / 6;
        StringBuilder sb = new StringBuilder(n);
        for (int i = 0, j = 2; i < n; i++, j += 6) {
            String code = unicodeStr.substring(j, j + 4);
            char ch = (char) Integer.parseInt(code, 16);
            sb.append(ch);
        }
        return sb.toString();
    }

8、URL编码转换

public static String URIEncoding(String str, String encoding) throws UnsupportedEncodingException {
        return URLDecoder.decode(str, encoding);
    }

9、获取字符串css信息

public static String getCssStyle(String str) {
        String return_str = "";
        if (!StrUtils.isEmpty(str)) {
            String pattern = "style=('(.*?)')";
            Pattern p = Pattern.compile(pattern);
            Matcher m = p.matcher(str);
            if (m.find()) {
                return_str = m.group(2);
            }
        }
        return return_str;
    }

10、HTML字符串转换

public static String encodeHTML(String str) {
        if (isEmpty(str)) {
            return "";
        }
        str = str.replaceAll("&", "&amp;");
        str = str.replaceAll("<", "&lt;");
        str = str.replaceAll(">", "&gt;");
        str = str.replaceAll("\"", "&quot;");
        return str;
    }

11、还原HTML字符串数据

public static String decodeHTML(String str) {
        if (isEmpty(str)) {
            return "";
        }
        str = str.replaceAll("&amp;", "&");
        str = str.replaceAll("&lt;", "<");
        str = str.replaceAll("&gt;", ">");
        str = str.replaceAll("&quot;", "\"");
        return str;
    }

12、Html转换为TextArea文本:编辑时拿来做转换

public static String Html2Text(String str) {
        if (str == null) {
            return "";
        }else if (str.length() == 0) {
            return "";
        }
        str = str.replaceAll("<br />", "\n");
        str = str.replaceAll("<br />", "\r");
        return str;
    }

13、TextArea文本转换为Html:写入数据库时使用

public static String Text2Html(String str) {
        if (str == null) {
            return "";
        }else if (str.length() == 0) {
            return "";
        }
        str = str.replaceAll("\n", "<br />");
        str = str.replaceAll("\r", "<br />");
        return str;
    }

14、字符串非法字符检测

public static boolean checkStringRule(String str) {
        if (isEmpty(str)) {
            return true;
        }
        boolean b = true;
        if ((str.indexOf("`") > -1) || (str.indexOf("~") > -1)
                || (str.indexOf("!") > -1) || (str.indexOf("#") > -1)
                || (str.indexOf("$") > -1) || (str.indexOf("%") > -1)
                || (str.indexOf("^") > -1) || (str.indexOf("&") > -1)
                || (str.indexOf("*") > -1) || (str.indexOf("(") > -1)
                || (str.indexOf(")") > -1) || (str.indexOf("=") > -1)
                || (str.indexOf("+") > -1) || (str.indexOf("|") > -1)
                || (str.indexOf("\\") > -1) || (str.indexOf(";") > -1)
                || (str.indexOf(":") > -1) || (str.indexOf("'") > -1)
                || (str.indexOf("\"") > -1) || (str.indexOf("<") > -1)
                || (str.indexOf(",") > -1) || (str.indexOf(">") > -1)
                || (str.indexOf("?") > -1) || (str.indexOf(" ") > -1)) {
            b = false;
        }
        return b;
    }

15、去除字符串前后的逗号

public static String deleteComma(String str) {
        str = str.replaceAll("^,*|,*$", "");
        return str;
    }

16、获取页面参数转为Map

public static HashMap<String, String> getMapParameterByRequest(HttpServletRequest request) {
        HashMap<String, String> hm = new HashMap<String, String>();
        @SuppressWarnings("unchecked")
        Enumeration<String> em = request.getParameterNames();
        while (em.hasMoreElements()) {
            String name = em.nextElement();
            if (!name.equals("method")) {
                String value = getNotNullStringValue(request.getParameter(name), "");
                hm.put(name, value);
            }
        }
        return hm;
    }

17、获得用户远程地址

public static String getRemoteAddr(HttpServletRequest request){
        String remoteAddr = request.getHeader("X-Real-IP");
        if (StringUtils.isNotBlank(remoteAddr)) {
            remoteAddr = request.getHeader("X-Forwarded-For");
        }else if (StringUtils.isNotBlank(remoteAddr)) {
            remoteAddr = request.getHeader("Proxy-Client-IP");
        }else if (StringUtils.isNotBlank(remoteAddr)) {
            remoteAddr = request.getHeader("WL-Proxy-Client-IP");
        }
        return remoteAddr != null ? remoteAddr : request.getRemoteAddr();
    }

18、截取关键字前后多少字

public static String subKeyword(String str, String keyword){
        String newStr = null;
        String frontStr = null;
        String afterStr = null;
        int keywordLength = keyword.length();
        int index = str.indexOf(keyword);
        int le = 35;
        if(index != -1){
            if(index>le){
                frontStr = str.substring(index-le,index);
            }else{
                frontStr = str.substring(0,index);
            }
            if(str.length()-index-keywordLength>le){
                afterStr = str.substring(index+keywordLength,index+keywordLength+le);
            }else{
                afterStr = str.substring(index+keywordLength,str.length());
            }
            newStr = frontStr + keyword + afterStr;
        }else{
            if(str.length()>70){
                newStr = str.substring(0,70);
            }else{
                newStr = str.substring(0,str.length());
            }
        }
        newStr = newStr.replace(keyword,"<font color='#FF1919'>"+keyword+"</font>");
        //System.out.println(newStr);
        return newStr;
    }

19、拼接IN条件值

public static String getInCond(String str) {
        String[] strArr = str.split(",");
        StringBuffer sb = new StringBuffer();
        for(int i = 0;i < strArr.length; i++){
            if(i == strArr.length-1){
                sb.append("'"+strArr[i]+"'");
            }else{
                sb.append("'"+strArr[i]+"'"+",");
            }
        }
        return sb.toString();
    }

20、拼接IN条件值 – int数组

public static String getInCondIntArry(int[] intArry) {
        String[] strArr = new String[intArry.length];
        for (int i = 0; i < strArr.length; i++) {
            strArr[i] = ""+intArry[i];
        }

        StringBuffer sb = new StringBuffer();
        for(int i = 0;i < strArr.length; i++){
            if(i == strArr.length-1){
                sb.append("'"+strArr[i]+"'");
            }else{
                sb.append("'"+strArr[i]+"'"+",");
            }
        }
        return sb.toString();
    }