zoukankan      html  css  js  c++  java
  • java字符串和unicode互转

    直接上代码

    private static String decodeUnicode(String input) {
            if (null == input)
                return input;
            int len = input.length();
            StringBuilder output = new StringBuilder(len);
            for (int x = 0; x < len; x++) {
                char ch = input.charAt(x);
                if (ch != '\') {
                    output.append(ch);
                } else {
                    x++;
                    if (x != len) {
                        ch = input.charAt(x);
                        if (ch == 'u') {
                            if (x + 5 > len) {
                                output.append(input.substring(x - 1));
                                x += 4;
                            } else {
                                String val = input.substring(x + 1, x + 5);
                                try {
                                    output.append((char) Integer.parseInt(val, 16));
                                } catch (NumberFormatException e) {
                                    output.append(input.substring(x - 1, x + 5));
                                }
                                x += 4;
                            }
                        } else
                            output.append(ch);
                    }
                }
            }
            return output.toString();
        }
    
        private static String encodeUnicode(String input) {
            if (null == input)
                return input;
            int len = input.length();
            StringBuilder output = new StringBuilder(len * 2);
            for (int x = 0; x < len; x++) {
                char ch = input.charAt(x);
                if ((ch < ' ') || (ch > '~')) {
                    output.append("\u");
                    String hex = Integer.toHexString(ch);
                    for (int i = 0; i < 4 - hex.length(); i++) {
                        output.append('0');
                    }
                    output.append(hex);
                } else {
                    output.append(ch);
                }
            }
            return output.toString();
        }

    注意stringbuilder和stringbuffer的区别

    stringbuffer线程安全,stringbuilder线程不安全,二者功能完全一样。没有异步情况stringbuilder会快一些。

  • 相关阅读:
    MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类)
    IE和FF下javascript获取网页宽高及窗口大小
    JSON View – JSON格式化查看工具
    查询功能所属的菜单
    会计科目API CCID
    应付的帐龄分析SQL
    采购到入库所经历的表
    金额大小写转换(2)
    oracle行列转换总结
    金额大小写转换(1)
  • 原文地址:https://www.cnblogs.com/xirtam/p/3465494.html
Copyright © 2011-2022 走看看