native2Ascii java实现
来源:互联网 发布:其怒乎的其是什么意思 编辑:程序博客网 时间:2024/06/06 12:37
package testapiframe;public class Native2AsciiUtils { /** * prefix of ascii string of native character */ private static String PREFIX = "\\u"; /** * Native to ascii string. It's same as execut native2ascii.exe. * * @param str native string * @return ascii string */ public static String native2Ascii(String str) { char[] chars = str.toCharArray(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < chars.length; i++) { sb.append(char2Ascii(chars[i])); } return sb.toString(); } /** * Native character to ascii string. * * @param c native character * @return ascii string */ private static String char2Ascii(char c) { if (c > 255) { StringBuilder sb = new StringBuilder(); sb.append(PREFIX); int code = (c >> 8); String tmp = Integer.toHexString(code); if (tmp.length() == 1) { sb.append("0"); } sb.append(tmp); code = (c & 0xFF); tmp = Integer.toHexString(code); if (tmp.length() == 1) { sb.append("0"); } sb.append(tmp); return sb.toString(); } else { return Character.toString(c); } } /** * Ascii to native string. It's same as execut native2ascii.exe -reverse. * * @param str ascii string * @return native string */ public static String ascii2Native(String str) { StringBuilder sb = new StringBuilder(); int begin = 0; int index = str.indexOf(PREFIX); while (index != -1) { sb.append(str.substring(begin, index)); sb.append(ascii2Char(str.substring(index, index + 6))); begin = index + 6; index = str.indexOf(PREFIX, begin); } sb.append(str.substring(begin)); return sb.toString(); } /** * Ascii to native character. * * @param str ascii string * @return native character */ private static char ascii2Char(String str) { if (str.length() != 6) { throw new IllegalArgumentException("Ascii string of a native character must be 6 character."); } if (!PREFIX.equals(str.substring(0, 2))) { throw new IllegalArgumentException("Ascii string of a native character must start with \"\\u\"."); } String tmp = str.substring(2, 4); int code = Integer.parseInt(tmp, 16) << 8; tmp = str.substring(4, 6); code += Integer.parseInt(tmp, 16); return (char) code; } public static void main(String args[]) { System.out.println(Native2AsciiUtils.native2Ascii("打开")); System.out.println(Native2AsciiUtils.native2Ascii("退出")); System.out.println(Native2AsciiUtils.native2Ascii("隐藏")); System.out.println(Native2AsciiUtils.ascii2Native("\\u9000\\u51fa")); System.out.println(Native2AsciiUtils.ascii2Native("\\u6253\\u5f00")); System.out.println(Native2AsciiUtils.ascii2Native("\\u9690\\u85cf")); }}
0 0
- native2Ascii java实现
- 用java代码实现native2ascii的功能
- Native2Ascii和Ascii2Native的Java实现
- java代码实现的jdk工具native2ascii.exe
- Native2Ascii 的代码实现
- javascripte 实现native2ascii
- java调用native2ascii.exe
- [Java 国际化] native2ascii用法
- java native2ascii 转码
- java native2ascii 工具 使用
- native2ascii
- native2ascii
- native2ascii
- native2ascii
- native2ascii
- native2ascii
- native2ascii
- native2ascii
- 第十二周项目三用递归方法求解(3)
- if和swith区别
- 第12周项目1.5 修改 调用
- 信号量问题题型
- IE6 select穿透问题(div 定位无法遮盖select)!
- native2Ascii java实现
- fzu月赛--C(fzu 2177)
- CodeForces - 482D Random Function and Tree(树形DP)
- ios 如何将图片保存至自定义分组
- zeroclipboard 粘贴板的应用示例, 兼容 Chrome、IE等多浏览器
- poj-2484
- Ubuntu 下配置OTL 链接MySQL
- PIN插装~linux下无法识别程序内部定义例程解决方法
- 《剑指Offer》之面试题旋转数组的最小数字