1、字符串达到多长才截取

2、将指定的对象转换为String类型

3、转换字符,用于替换提交的数据中存在非法数据:"'"

4、对标题""转换为中文“”采用对应转换

5、替换HTML标记

6、标题中含有特殊字符替换 如:●▲@◎※ 主要在标题中使用

7、替换所有英文字母

8、替换所有数字

9、将/n转换成为回车<br> ,空格转为&nbsp;

10、清除所有<>标记符号 主要在搜索中显示文字内容 而不显示样式

11、清楚WOrd垃圾代码

12、判断传入的字符串如果为null则返回"",否则返回其本身

13、获取百分比

[java] view plain copy
package com.xwtech.uomp.base.util;  
  
import java.io.UnsupportedEncodingException;  
import java.text.NumberFormat;  
import java.util.HashMap;  
import java.util.Map;  
import java.util.regex.Matcher;  
import java.util.regex.Pattern;  
  
import com.xwtech.uomp.base.action.handler.HandlerResult;  
import com.xwtech.uomp.base.constants.SystemCodeConstants;  
  
public class StringUtil {  
  
    public static final String arrTest[] = {"[br]", "[/b]", "[/i]", "[/u]", "[/size]", "[/color]", "[/align]", "[/url]", "[/email]", "[/img]"};  
    public static final String arrParam[] = {"\\[br\\]", "\\[b\\](.+?)\\[/b\\]",  
            "\\[i\\](.+?)\\[/i\\]",  
            "\\[u\\](.+?)\\[/u\\]",  
            "\\[size=(.+?)\\](.+?)\\[/size\\]",  
            "\\[color=(.+?)\\](.+?)\\[/color\\]",  
            "\\[align=(.+?)\\](.+?)\\[/align\\]",  
            "\\[url=(.+?)\\](.+?)\\[/url\\]",  
            "\\[email=(.+?)\\](.+?)\\[/email\\]," +  
                    "\\[img=(.+?)\\](.+?)\\[/img\\]"};  
    public static final String arrCode[] = {"<br>", "<b>$1</b>", "<i>$1</i>", "<u>$1</u>",  
            "<font size=\"$1\">$2</font>",  
            "<font color=\"$1\">$2</font>",  
            "<div align=\"$1\">$2</div>",  
            "<a href=\"$1\" target=\"_blank\">$2</a>",  
            "<a href=\"email:$1\">$2</a>",  
            "<img src=\"$1\" border=0>$2</img>"};  
  
  
    public static int getInt(String content) {  
        int intContent;  
        try {  
            intContent = Integer.parseInt(content);  
        } catch (Exception e) {  
            intContent = 0;  
        }  
        return intContent;  
    }  
  
    public static long getLong(String content) {  
        long lngContent;  
        try {  
            lngContent = Long.parseLong(content);  
        } catch (Exception e) {  
            lngContent = 0L;  
        }  
        return lngContent;  
    }  
  
    /** 1 
     * @param str    原字符串 
     * @param length 字符串达到多长才截取 
     * @return 
     */  
    @SuppressWarnings("static-access")  
    public static String subStringToPoint(String str, int length, String more) {  
  
        String reStr = "";  
  
        if (str.length() * 2 - 1 > length) {  
  
            int reInt = 0;  
  
            if (str == null)  
  
                return "";  
  
            char[] tempChar = str.toCharArray();  
  
            for (int kk = 0; (kk < tempChar.length && length > reInt); kk++) {  
  
                String s1 = str.valueOf(tempChar[kk]);  
  
                byte[] b = s1.getBytes();  
  
                reInt += b.length;  
  
                reStr += tempChar[kk];  
  
            }  
  
            if (length == reInt || (length == reInt - 1)) {  
  
                if (!reStr.equals(str)) {  
                    reStr += more;  
                }  
            }  
  
        } else {  
            reStr = str;  
        }  
        return reStr;  
  
    }  
  
  
    /** 2 
     * 将指定的对象转换为String类型 
     * 
     * @param curObject 传入对象参数 
     * @return String 
     */  
    public static String getString(Object curObject) {  
        if (null == curObject) {  
            throw new NullPointerException("The input object is null.");  
        } else {  
            return curObject.toString();  
        }  
    }  
  
    /** 3 
     * 转换字符,用于替换提交的数据中存在非法数据:"'" 
     * 
     * @param Content 
     * @return 
     */  
    public static String replaceChar(String content) {  
        String newstr = "";  
        newstr = content.replaceAll("\'", "''");  
        return newstr;  
    }  
  
    /**4 
     * 对标题""转换为中文“”采用对应转换 
     * 
     * @param Content 
     * @return 
     */  
    public static String replaceSymbol(String content) {  
        int intPlaceNum = 0;  
        int Num = 0;  
        String strContent = content;  
        while (true) {  
            //判断是否还存在"  
            intPlaceNum = strContent.indexOf("\"");  
            if (intPlaceNum < 0) {  
                break;  
            } else {  
                if (Num % 2 == 0) {  
                    strContent = strContent.replaceFirst("\"", "“");  
                } else {  
                    strContent = strContent.replaceFirst("\"", "”");  
                }  
                Num = Num + 1;  
            }  
        }  
        return strContent;  
    }  
  
    /**5 
     * 替换HTML标记 
     * 
     * @param Content 
     * @return 
     */  
    public static String replaceCharToHtml(String content) {  
        String strContent = content;  
        strContent = strContent.replaceAll("<", "<");  
        strContent = strContent.replaceAll(">", ">");  
        strContent = strContent.replaceAll("\"", """);  
        return strContent;  
    }  
  
    public static String replaceHtmlToChar(String content) {  
        String strContent = content;  
        strContent = strContent.replaceAll("<", "<");  
        strContent = strContent.replaceAll(">", ">");  
        strContent = strContent.replaceAll(""", "\"");  
        return strContent;  
    }  
  
    //数据库替换  
    public static String replaceCharToSql(String content) {  
        String strContent = content;  
        strContent = strContent.replaceAll("%", "\\\\%");  
        return strContent;  
    }  
  
    public static String toHtmlValue(String value) {  
        if (null == value) {  
            return null;  
        }  
        char a = 0;  
        StringBuffer buf = new StringBuffer();  
        for (int i = 0; i < value.length(); i++) {  
            a = value.charAt(i);  
            switch (a) {  
                // 双引号  
                case 34:  
                    buf.append(""");  
                    break;  
                // &号  
                case 38:  
                    buf.append("&");  
                    break;  
                // 单引号  
                case 39:  
                    buf.append("'");  
                    break;  
                // 小于号  
                case 60:  
                    buf.append("<");  
                    break;  
                // 大于号  
                case 62:  
                    buf.append(">");  
                    break;  
                default:  
                    buf.append(a);  
                    break;  
            }  
        }  
        return buf.toString();  
    }  
  
  
    /**6 
     * 标题中含有特殊字符替换 如:●▲@◎※ 主要在标题中使用 
     * 
     * @param Content 
     * @return 
     */  
    public static String replaceSign(String content) {  
        String strContent = "";  
        strContent = content.replaceAll("\\*", "");  
        strContent = strContent.replaceAll("\\$", "");  
        strContent = strContent.replaceAll("\\+", "");  
        String arrStr[] = {":", ":", "●", "▲", "■", "@", "@",  
                "◎", "★", "※", "#", "〓", "\", "§", "☆",  
                "○", "◇", "◆", "□", "△", "&", "^", " ̄",  
                "_", "♂", "♀", "Ю", "┭", "①", "「", "」", "≮", "§",  
                "£", "∑", "『", "』", "⊙", "∷", "Θ", "の", "↓", "↑",  
                "Ф", "~", "Ⅱ", "∈", "┣", "┫", "╋", "┇", "┋", "→",  
                "←", "!", "Ж", "#"};  
        for (int i = 0; i < arrStr.length; i++) {  
            if ((strContent.indexOf(arrStr[i])) >= 0) {  
                strContent = strContent.replaceAll(arrStr[i], "");  
            }  
        }  
  
        return strContent;  
    }  
  
    /**7 
     * 替换所有英文字母 
     * 
     * @param Content 
     * @return 
     */  
    public static String replaceLetter(String content) {  
        String strMark = "[^[A-Za-z]+$]";  
        String strContent = "";  
        strContent = content.replaceAll(strMark, "");  
        return strContent;  
    }  
  
    /**8 
     * 替换所有数字 
     * 
     * @param Content 
     * @return 
     */  
    public static String replaceNumber(String content) {  
        String strMark = "[^[0-9]+$]";  
        String strContent = "";  
        strContent = content.replaceAll(strMark, "");  
        return strContent;  
    }  
  
    /**9 
     * 将/n转换成为回车<br> ,空格转为  
     * 
     * @param Content 
     * @return 
     */  
    public static String replaceBr(String content) {  
        if (content == null) {  
            return "";  
        }  
        String strContent = "";  
  
        // String strMark ="[/\n\r\t]";  
  
        //strContent = content.replaceAll(strMark,"<br>");  
  
        strContent = content.replaceAll("\n\r\t", "<br>");  
        strContent = strContent.replaceAll("\n\r", "<br>");  
        strContent = strContent.replaceAll("\r\n", "<br>");  
        strContent = strContent.replaceAll("\n", "<br>");  
        strContent = strContent.replaceAll("\r", "<br>");  
        strContent = strContent.replaceAll(" ", " ");  
        return strContent;  
    }  
  
    /**10 
     * 清除所有<>标记符号 主要在搜索中显示文字内容 而不显示样式 
     * 
     * @param Content 
     * @return 
     */  
    public static String replaceMark(String content) {  
        String strContent = "";  
        String strMark = "<\\s*[^>]*>";  
        strContent = content.trim();  
        strContent = strContent.replaceAll("\"", "");  
        strContent = strContent.replaceAll("\'", "");  
        //删除所有<>标记  
        strContent = strContent.replaceAll(strMark, "");  
        strContent = strContent.replaceAll(" ", "");  
        strContent = strContent.replaceAll(" ", "");  
        strContent = strContent.replaceAll(" ", "");  
        strContent = strContent.replaceAll("\r", "");  
        strContent = strContent.replaceAll("\n", "");  
        strContent = strContent.replaceAll("\r\n", "");  
        return strContent;  
    }  
  
    /**11 
     * 清楚WOrd垃圾代码 
     * 
     * @param Content 
     * @return 
     */  
    public static String clearWord(String content) {  
        String strContent = "";  
        strContent = content.trim();  
        strContent = strContent.replaceAll("x:str", "");  
        //Remove Style attributes  
        strContent = strContent.replaceAll("<(\\w[^>]*) style=\"([^\"]*)\"", "<$1");  
        //Remove all SPAN  tags  
        strContent = strContent.replaceAll("<\\/?SPAN[^>]*>", "");  
        //Remove Lang attributes  
        strContent = strContent.replaceAll("<(\\w[^>]*) lang=([^ |>]*)([^>]*)", "<$1$3");  
        //Remove Class attributes  
        strContent = strContent.replaceAll("<(\\w[^>]*) class=([^ |>]*)([^>]*)", "<$1$3");  
        //Remove XML elements and declarations  
        strContent = strContent.replaceAll("<\\\\?\\?xml[^>]*>", "");  
        //Remove Tags with XML namespace declarations: <o:p></o:p>  
        strContent = strContent.replaceAll("<\\/?\\w+:[^>]*>", "");  
        return strContent;  
    }  
  
    /** 
     * 对组ID信息进行处理 转换为标准ID组 并过滤重复的信息 
     * 
     * @param teamId 
     * @return 
     */  
    public static String checkTeamId(String teamId) {  
        String strTeamId = "";  
        String strTempId = "";  
        String strTemp = "";  
        String[] arrTeamId = teamId.split(",");  
        for (int num = 0; num < arrTeamId.length; num++) {  
            strTemp = arrTeamId[num].trim();  
            if ((!strTemp.equals("")) && (!strTemp.equals("0"))) {  
                if ((strTempId.indexOf("," + strTemp + ",")) >= 0) { //表示已经保存过了  
                } else {  
                    if (strTeamId.equals("")) {  
                        strTeamId = strTemp;  
                        strTempId = strTempId + "," + strTemp + ",";  
                        ;  
                    } else {  
                        strTeamId = strTeamId + "," + strTemp;  
                        strTempId = strTempId + strTemp + ",";  
                    }  
                }  
            }  
        }  
        return strTeamId;  
    }  
  
  
    public static String replaceUbb(String content) {  
        String strContent = content;  
        try {  
            for (int num = 0; num < arrTest.length; num++) {  
                if ((strContent.indexOf(arrTest[num])) >= 0) {  
                    try {  
                        strContent = strContent.replaceAll(arrParam[num], arrCode[num]);  
                    } catch (Exception ex) {  
                    }  
                }  
            }  
        } catch (Exception e) {  
            //System.out.println("UBB CODE 错误"+e);  
        }  
        return strContent;  
    }  
  
  
    /**12 
     * 判断传入的字符串如果为null则返回"",否则返回其本身 
     * 
     * @param string 
     * @param instant 
     * @return String 
     */  
    public static String convertNull(String string, String instant) {  
        return isNull(string) ? instant : string;  
    }  
  
    /** 
     * {@link #convertNull(String, String)} 
     * 
     * @param string 
     * @return String 
     */  
    public static String convertNull(String string) {  
        return convertNull(string, "");  
    }  
  
    /** 
     * 判断对象是否为空 
     * 
     * @param obj Object 
     * @return boolean 空返回true,非空返回false 
     */  
    public static boolean isNull(Object obj) {  
        return (null == obj) ? true : false;  
    }  
  
    /** 
     * Description:判断字段空null <br> 
     * 
     * @param s 
     * @return boolean 
     */  
    public static boolean isNull(String s) {  
        if (s == null || "".equals(s.trim())) {  
            return true;  
        }  
  
        return false;  
    }  
  
    /**13 
     * 获取百分比 
     * 
     * @param p1 
     * @param p2 
     * @return 
     */  
    public static String percent(double p1, double p2) {  
        if (p2 == 0) {  
            return "0.00%";  
        }  
        String str;  
        double p3 = p1 / p2;  
        NumberFormat nf = NumberFormat.getPercentInstance();  
        nf.setMinimumFractionDigits(2);  
        str = nf.format(p3);  
        return str;  
    }  
  
    /** 
     * 字符串编码转换的实现方法 
     * 
     * @param str        待转换编码的字符串 
     * @param oldCharset 原编码 
     * @param newCharset 目标编码 
     * @return 
     * @throws UnsupportedEncodingException 
     */  
    public static String changeCharset(String str, String oldCharset, String newCharset) {  
        try {  
            if (str != null) {  
                //用旧的字符编码解码字符串。解码可能会出现异常。  
                byte[] bs = str.getBytes(oldCharset);  
                //用新的字符编码生成字符串  
                return new String(bs, newCharset);  
            }  
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
            return "";  
        }  
        return "";  
    }  
  
    /** 
     * 字符串编码转换的实现方法 
     * 
     * @param str        待转换编码的字符串 
     * @param newCharset 目标编码 
     * @return 
     * @throws UnsupportedEncodingException 
     */  
    public String changeCharset(String str, String newCharset) {  
        try {  
            if (str != null) {  
                //用默认字符编码解码字符串。  
                byte[] bs = str.getBytes();  
                //用新的字符编码生成字符串  
                return new String(bs, newCharset);  
            }  
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
        }  
        return "";  
    }  
  
    /** 
     * 解析html中的参数信息 
     * 
     * @param elementStr 
     * @return 
     */  
    public static Map<String, String> getConfigValue(String elementStr) {  
        try {  
            elementStr = java.net.URLDecoder.decode(elementStr, "utf-8");  
        } catch (UnsupportedEncodingException e) {  
            e.printStackTrace();  
        }  
        int start = elementStr.indexOf("configvalue");  
        Map<String, String> map = null; //参数的键值对  
        if (start != -1) {  
            map = new HashMap<String, String>();  
            start = elementStr.indexOf("\"", start);  
            int end = elementStr.lastIndexOf("||");  
            if (start < 0 || end < 0) {  
                return null;  
            }  
            String configValue = elementStr.substring(start + 1, end);  
            String[] values = configValue.split("\\|\\|");  
  
            for (int i = 0; i < values.length; i++) {  
                String value = values[i];  
                if (value != null && value.trim().length() > 1) {  
                    int de = value.indexOf("=");  
                    if (de > 0) {  
                        String name = value.substring(0, de);  
                        String v = value.substring(de + 1);  
                        map.put(name, v);  
                    }  
                }  
            }  
        }  
        return map;  
    }  
  
    /** 
     * 转换空值为0 
     * 
     * @param str 
     * @return 
     */  
    public static String conventString(String str) {  
        return null == str || "".equals(str) ? "" + "0" : str;  
    }  
  
    public static String alert(HandlerResult result, String contextPath) {  
        StringBuffer sf = new StringBuffer();  
        sf.append("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");  
        sf.append("<html><head><title>信息提示</title>");  
        sf.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"").append(contextPath).append("/resource/css/frame.css\"  />");  
        sf.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"").append(contextPath).append("/resource/scripts/Dhtmlx/dhtmlxSuite/dhtmlxWindows/codebase/skins/dhtmlxwindows_dhx_skyblue.css\"/>");  
        sf.append("<link rel=\"stylesheet\" type=\"text/css\" href=\"").append(contextPath).append("/resource/scripts/Dhtmlx/dhtmlxSuite/dhtmlxWindows/codebase/dhtmlxwindows.css\"/>");  
        sf.append("<script type=\"text/javascript\" language=\"javascript\" src=\"").append(contextPath).append("/resource/scripts/Dhtmlx/dhtmlxSuite/dhtmlxLayout/codebase/dhtmlxcommon.js\"></script>");  
        sf.append("<script type=\"text/javascript\" language=\"javascript\" src=\"").append(contextPath).append("/resource/scripts/Dhtmlx/dhtmlxSuite/dhtmlxLayout/codebase/dhtmlxcontainer.js\"></script>");  
        sf.append("<script type=\"text/javascript\" language=\"javascript\" src=\"").append(contextPath).append("/resource/scripts/Dhtmlx/dhtmlxSuite/dhtmlxWindows/codebase/dhtmlxwindows.js\"></script>");  
        sf.append("<script type=\"text/javascript\" language=\"javascript\" src=\"").append(contextPath).append("/resource/scripts/jquery-1.7.1.min.js\"></script>");  
        sf.append("<script type=\"text/javascript\" language=\"javascript\" src=\"").append(contextPath).append("/resource/scripts/uompDialog.js\"></script>");  
        sf.append("<script type=\"text/javascript\" language=\"javascript\" src=\"").append(contextPath).append("/resource/scripts/main.js\" ></script>");  
        sf.append("</head><body>");  
        sf.append("</body></html>");  
        sf.append("<script type=\"text/javascript\">");  
        sf.append("$(document).ready(function(){");  
        sf.append(" top.UOMPDialog.alert('" + result.getResMsg() + "',0,\"\"");  
        if (SystemCodeConstants.NOT_LOGIN.equals(result.getSysCode())) {  
            sf.append(", {'yes' : function(){");  
            sf.append(" top.location.href = '").append(contextPath).append("/index.jsp'").append(";");  
            sf.append("}}");  
        }  
        sf.append(");");  
        sf.append(" });");  
        sf.append("</script>");  
        return sf.toString();  
    }  
  
    public static void main(String[] args) {  
        Pattern pattern = Pattern.compile("<span\\s.+?]]</span>");  
        String str = "<span configvalue=\"eid=1043||ename=%E9%9D%A2%E5%8C%85%E5%B1%91||folderId=CLBLYM||\" contenteditable=\"false\" style=\"background-color: #ffff00; color: #000000\">[[ 面包屑 ]]</span><br />"  
                + "业务名称:<span configvalue=\"eid=1042||ename=%E4%B8%9A%E5%8A%A1%E5%90%8D%E7%A7%B0||busiNum=CL||\" contenteditable=\"false\" style=\"background-color: #ffff00; color: #000000\">[[ 业务名称 ]]</span><br />"  
                + "业务资费:<span configvalue=\"eid=1041||ename=%E4%B8%9A%E5%8A%A1%E8%B5%84%E8%B4%B9||busiNum=CL||\" contenteditable=\"false\" style=\"background-color: #ffff00; color: #000000\">[[ 业务资费 ]]</span><br />"  
                + "业务介绍:<br />"  
                + "<span configvalue=\"eid=1040||ename=%E4%B8%9A%E5%8A%A1%E4%BB%8B%E7%BB%8D||busiNum=CL||\" contenteditable=\"false\" style=\"background-color: #ffff00; color: #000000\">[[ 业务介绍 ]]</span><br />"  
                + "<br />"  
                + "<br />"  
                + "<br /><span >]]</span>"  
                + "<span configvalue=\"eid=1043||ename=%E9%9D%A2%E5%8C%85%E5%B1%91||folderId=CLBLYM||\" contenteditable=\"false\" style=\"background-color: #ffff00; color: #000000\">[[ 面包屑 ]]</span><br />";  
        Matcher matcher = pattern.matcher(str);  
        String htmlStr = "";  
        StringBuffer strbuff = new StringBuffer();  
  
        int i = 0;  
        while (matcher.find()) {  
            String bm = matcher.group();  
            System.out.println(bm);  
            Map map = getConfigValue(bm);  
            if (map != null) {  
                //todo:从缓存中获取数据  
                if (((String) map.get("eid")).equals("1043")) {  
                    String se = "【掌上营业厅】+ 1";  
                    matcher.appendReplacement(strbuff, Matcher.quoteReplacement(se == null ? "" : se));  
                } else if (((String) map.get("eid")).equals("1042")) {  
                    String se = "【掌上营业厅】+ 2";  
                    matcher.appendReplacement(strbuff, Matcher.quoteReplacement(se == null ? "" : se));  
                } else if (((String) map.get("eid")).equals("1041")) {  
                    String se = "【掌上营业厅】 + 3";  
                    matcher.appendReplacement(strbuff, Matcher.quoteReplacement(se == null ? "" : se));  
                } else if (((String) map.get("eid")).equals("1040")) {  
                    String se = "【掌上营业厅】+ 4";  
                    matcher.appendReplacement(strbuff, Matcher.quoteReplacement(se == null ? "" : se));  
                } else if (((String) map.get("eid")).equals("1046")) {  
                    String se = "【掌上营业厅】+888888888888";  
                    matcher.appendReplacement(strbuff, Matcher.quoteReplacement(se == null ? "" : se));  
                }  
                i++;  
            }  
        }  
        matcher.appendTail(strbuff);  
        htmlStr += strbuff.toString();  
        System.out.println(htmlStr + "=================" + i);  
    }  
      
    /** 
     * 方法描述:判断传入的字符串是否非空,即:字符串是否等于null、""或" "。 
     * 创建日期:2013-12-7下午11:39:34 
     * 修改日期: 
     * 作者:zhanglu 
     * @param: 
     * @return:boolean 
     */  
    public static boolean isNotEmpty(String str)  
    {  
        if ((null == str) || ("".equals(str.trim())))  
        {  
            return false;  
        }  
        else  
        {  
            return true;  
        }  
    }  
      
    /** 
     * 方法描述:将传入的字符串转换成整型数据,如果转换过程中发生异常,则返回默认值:defaultValue。 
     * 创建日期:2013-12-7下午11:40:20 
     * 修改日期: 
     * 作者:zhanglu 
     * @param: 
     * @return:int 
     */  
    public static int convertIntoInt(String str, int defaultValue)  
    {  
        // 定义一个返回值,假如转型过程中发生异常,则返回此默认值  
        int retData = defaultValue;  
        try  
        {  
            retData = Integer.parseInt(str.trim());  
        }  
        catch(NumberFormatException e)  
        {  
        }  
        catch(Exception ex)  
        {  
        }  
  
        return retData;  
    }  
  
}

StringUtil详解相关推荐

  1. 网络知识详解之:网络攻击与安全防护

    网络知识详解之:网络攻击与安全防护 计算机网络相关知识体系详解 网络知识详解之:TCP连接原理详解 网络知识详解之:HTTP协议基础 网络知识详解之:HTTPS通信原理剖析(对称.非对称加密.数字签名 ...

  2. java读写json格式的文件方法详解.txt,并批量存储进redis

    捐躯赴国难,视死忽如归.恸哭六军俱缟素,冲冠一怒为红颜.君子坦荡荡,小人长戚戚.风日晴和人意好,夕阳箫鼓几船归.民为贵,社稷次之,君为轻.Java 读写json格式的文件方法详解 文章录入:7747. ...

  3. 微信回调 java_详解APP微信支付(java后台_统一下单和回调)

    1.微信配置信息 global.properties 2.方法wxpay用于生成预支付订单信息 方法notifyWeiXinPay用于微信支付成功后的回调, 注意: 在手机端使用微信支付成功后,微信服 ...

  4. WEB后台--邮件和短信业务实现(包括Java一键实现、封装和异步)以及原理详解

    本来就打算针对一些固定的特别点的业务(QQ与网易邮件.拦截设计.短信.定时器等等)来进行记录以及解析原理,这些会比较零散记录在JavaWeb的分类里面,感兴趣的童鞋可以去看下. 有人问为什么要邮件短信 ...

  5. 多维系统下单点登录深入详解

    多维系统下单点登录深入详解 1. 从淘宝天猫的单点登录说起 1.1 SSO单点登录 1.2 淘宝天猫登录场景解析 2. 单点登录之整体解决方案 2.1 设计方案-Cookie 2.2 设计方案-分布式 ...

  6. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  7. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

  8. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  9. 通俗易懂word2vec详解词嵌入-深度学习

    https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...

  10. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

最新文章

  1. CVPR2020论文解读:CNN合成的图片鉴别
  2. portlet 与 servlet 的关系
  3. 2018.10.30-dtoj-4008-纸牌游戏(cards)
  4. JQuery 总结(8)Ajax 无刷新技术
  5. 科大星云诗社动态20210823
  6. mysql数据库小系统_Mysql数据库基础小实例 学员管理系统菜单
  7. HDU-5783 Divide the Sequence(贪心)
  8. dw中html中无法使用js,在Dreamweaver中调用JavaScript行为
  9. TCP网络编程的基本流程
  10. 软著申请时的软件说明书如何制作
  11. 一段话系列-正则基础
  12. QQ for Linux 复活,微信 for Linux 还远吗?
  13. ArcGIS10.2安装教程
  14. 地图标识符号大全_资源小结:中国分省地图大全(10.23版)
  15. 面试官到底想看什么样的简历?
  16. 麦克风音频服务器未响应,win7电脑插入麦克风后realtek高清晰音频管理器没有反应怎么办...
  17. spss多元线性回归散点图_利用SPSS进行线性回归分析
  18. 电脑没有“立体声混音”设备怎么办,虚拟声卡安装教程
  19. 【Arduino+ESP32专题】一起来读INA3221数据手册 1
  20. WCH系列芯片CoreMark跑分

热门文章

  1. 分享 上班族兼职项目——存着慢慢看很有用
  2. 华为云计算HCIE学习笔记-FusionAccess
  3. 动易php,动易CMS数据转成dedecms的php程序
  4. 动网论坛 php版,动网即将推出第二代PHP版本论坛系统
  5. 【C++程序设计语言A视频教程 全12讲 中科院】【下载链接】
  6. 金蝶K3服务器安装及配置
  7. c语言c99标准,C语言 1999年标准 (C99)
  8. 一位计算机牛人的心得,谈计算机和数学
  9. Java爬虫入门程序
  10. ubuntu20.04安装simhei字体--jupyter中文显示框框的解决方案