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会快一些。
java字符串和unicode互转的更多相关文章
- Java - 字符串和Unicode互转 - 解析小米pm.min.js
小米JS地址: http://p.www.xiaomi.com/zt/20130313/huodong/pm.min.js 上面这个JS是小米抢手机页面的代码.和抢手机有直接关联.. 虽然我3次都没抢 ...
- Java字符串与日期互转
Java字符串与日期的相互转换 1.字符串转日期 字符串的格式与日期的格式一定要对应,并且字符串格式可以比日期格式多,但不能少,数字大小不自动计算日期.其中需要主要大小写 年yyyy 月MM 日dd ...
- java字符串大小写字母互改
import java.util.Scanner; public class Test { /** * 测试数据 * * @param args */ public static void main( ...
- java 中文与unicode互转
public class FontUtil { public static void main(String[] args) { System.out.println(chinaToUnicode(& ...
- java笔记 -- java字符串
概念: Java字符串就是Unicode字符序列, Java没有内置的字符串类型, 而是在标准Java类库中提供了一个预定义类. 每个用双引号括起来的字符串都是String类的一个实例.String ...
- 浅谈Java字符串
从概念上而言,Java字符串就是Unicode字符序列.由于Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类String,每个用双引号的括起来的字符串都是String类的一个实 ...
- Java 字符串简介
从概念上讲,Java 字符串就是 Unicode 字符序列.Java 没有内置的字符串类型,而是在标准 Java 类库中提供了一个预定义类,很自然地叫做 String.每个用双引号括起来的字符串都是 ...
- java对含有中文的字符串进行Unicode编码
public class MyUtil { public static void main(String[] args) throws Exception { String s = "a中a ...
- Java中将字符串与unicode的相互转换工具类
unicode编码规则 unicode码对每一个字符用4位16进制数表示.具体规则是:将一个字符(char)的高8位与低8位分别取出,转化为16进制数,如果转化的16进制数的长度不足2位,则在其后补0 ...
随机推荐
- 关于StartCoroutine的简单线程使用
StartCoroutine在unity3d的帮助中叫做协程,意思就是启动一个辅助的线程. 在C#中直接有Thread这个线程,但是在unity中有些元素是不能操作的.这个时候可以使用协程来完成. 使 ...
- 数据挖掘十大经典算法[0]-K-Means算法
K-Means算法的输入N,K和一个size为N的向量组vector.输出K个两两互不相交的向量组.其本质是将给定的向量组划分成K个类别,使得同类别的向量相似度比较大,而不同类别的向量之间的相似度较小 ...
- BZOJ2310 : ParkII
单路径最大和问题,设f[i][j][S]表示到达(i,j),轮廓线状态为S的最优解. S用4进制m+1位数表示,0表示无插头,1表示左括号,2表示右括号,3表示独立插头. 在DP之前先进行一次预处理, ...
- BZOJ4294 : [PA2015]Fibonacci
斐波那契数列模$10^m$的循环节为$6\times10^m$,于是从低位到高位dfs即可. #include<cstdio> #include<cstring> #defin ...
- Android 与 IIS服务器身份验证
1)基础验证: /** * 从服务器取图片 * * @param url * @return */ public void getHttpBitmap(final String url) { new ...
- silverlight 富文本
- Channel 笔记本项目 (门户客户端(介绍1) 和 wp7客户端)
- 解决Windows Server 2003不认U盘或移动硬盘的问题
1.进入命令提示符环境(也就是DOS) 2.进入DISKPART程序 3.输入AUTOMOUNT ENABLE指令 4.OK,下次USB硬盘接入后就可以像XP 一样自动装载了.
- 【wikioi】1108 方块游戏(模拟)
http://wikioi.com/problem/1108/ 这题有点变态,因为他根本没有策略! 还是说这题不是实时的?反正这题很变态,是在一个时间段同时消除所有的行列斜边,同一时间!!!!!! 所 ...
- RN组件之ScrollView
一.ScrollView 该组件封装了Android平台的ScrollView(滚动组件),并且提供触摸事件"responder"系统功能.使用ScrollView的时候 确保有一 ...