java ask to_Java native和ASCII 互转工具Native2AsciiUtils.java下载
/*
* Copyright 2012-2013 The Haohui Network Corporation
*/
package com.haohui.common.utils;
/**
* Java Native和Ascii转换代码
*
* @project common-utils
* @author cevencheng
* @create 2012-11-7 下午4:16:57
*/
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;
}
}
java ask to_Java native和ASCII 互转工具Native2AsciiUtils.java下载相关推荐
- native与ascii互转
package org.edujks.schoolapp.schoolbasedresearch.schoolsubject.action;public class DecodeUtil {/*** ...
- java中的native关键字有什么作用?(java本地方法)
转自: http://zhidao.baidu.com/link?url=Xu94DBMxXz3sJyCrG7G1sCmXoHuyuYx4DMG1x7UqYL7FhfFnqF7-Z9nxIQUpntP ...
- java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java
原文:仿新浪微博 短链接地址生成工具 ShortUrlGenerator.java 源代码下载地址:http://www.zuidaima.com/share/1550463378934784.htm ...
- java htmldecoder_HTMLDecoder——开头的HTML编码的解码工具类(java)
import java.util.Arrays; /** * * @author xiehui 2019/8/30 * */ public class HTMLDecoder { // 开头的编码换转 ...
- java中文姓名排序pinyin4j-2.5.0,pinyin4j工具类--Java 中文字符操作:排序、拼音
直接上代码吧!将汉子转化为拼音,用到"pinyin4j-2.5.0.jar". 1.ChinaWord.java : 汉子排序 /** * @包名 :com.andy.汉字排序 * ...
- python ascii函数二进制_python模块介绍- binascii:二进制和ASCII互转以及其他进制转换...
20.1 binascii:二进制和ASCII互转 作用:二进制和ASCII互相转换. Python版本:1.5及以后版本 binascii模块包含很多在二进制和ASCII编码的二进制表示转换的方法. ...
- native关键字(本地方法)、 java调用so动态链接库
Java native关键字 一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个j ...
- java中的Native方法
由于Native方法最近经常碰到,好奇之下便找到了这篇博客,内容还是相当好理解的,下面即是正文部分: 一. 什么是Native Method 简单地讲,一个Native Method就是一个java调 ...
- Java关键字(二)——native
本篇博客我们将介绍Java中的一个关键字--native. native 关键字在 JDK 源码中很多类中都有,在 Object.java类中,其 getClass() 方法.hashCode()方法 ...
最新文章
- MongoDB如何一次插入多条json数据--转
- 全球及中国偶联单克隆抗体行业深度调研及项目风险评估报告2021-2027年
- 中南林业科技大学的计算机研究生分数线,2019中南林业科技大学研究生分数线汇总(含2016-2019历年复试)...
- 黑科技(next_permutation和prev_permutation)
- 第二节:Css重写样式
- dev c++ 代码补全_学习干货——玩转DEV—C++
- CentOS7.X安装Redis-4.0.8以及Redis集群搭建
- (一)深度伪造的视频人脸传输
- 豆瓣小组html模板,用前端的方式打开豆瓣租房小组
- Pytorch搭建网络模型
- 我是如何出版一本书的?
- 怎么查看计算机mac地址,怎么查电脑的mac地址?电脑mac地址查询方法
- 【免填邀请码】让邀请裂变活动事半功倍
- matlab的特殊字符(上下标和希腊字母等)
- 26 岁年薪百万!华为最新“天才少年”曝光,学霸兼 B 站 UP 主,还爱跳街舞
- 【Linux环境搭建】十二、Linux(CentOS7) 时序数据库InfluxDB及Influx-proxy安装配置
- 网络基础--搭建一个简单的网络
- 什么软件可以将win窗口进行置顶_【玩转YOGA】第四期:像平板一样使用平板——触屏手势软件GestureSign...
- 爬虫教程:如何批量采集知乎
- 面试题之如何实现一个深拷贝
热门文章
- Android修改项目包名
- neditor 自定义工具栏配置
- jmeter模拟http请求/发送gzip数据
- Jmeter日志输出和日志级别设置
- java spring注入 静态方法_java相关:spring为类的静态属性实现注入实例方法
- django本地安装mysql_django使用mysql(本地环境下)_MySQL
- 从0实现三层神经网络
- 服务器lunix系统开启多用户,Ubuntu 服务器设置软件多用户访问
- 【C语言进阶深度学习记录】二十二 指针的本质分析
- C++之类的静态成员变量和静态成员函数