Java中根据字节截取字符串
Posted 小明猿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中根据字节截取字符串相关的知识,希望对你有一定的参考价值。
一、简介
为了统一世界各国的字符集,流行开了Unicode字符集,java也支持Unicode编码,即java中char存的是代码点值,即无论是‘A’还是‘中’都占两个字节。
代码点值:与Unicode编码表中字符相对应的代码值;
代码单元:就是java中的一个char,可一个以认为是字符编码的基本单元
二、根据字节截取字符串的代码实现
public String getSubString(String str, int length) throws Exception {
int i;
int n;
byte[] bytes = str.getBytes("Unicode"); //使用Unicode字符集将字符串编码成byte序列
i = 2; //bytes的前两个字节是标志位,bytes[0] = -2, bytes[1] = -1, 故从第二位开始
n = 0;
for(; i < bytes.length && n < length; i++) {
if(i % 2 == 1) {
n++;
} else {
if(bytes[i] != 0) {
n++;
}
}
}
//去掉半个汉字
if(i % 2 == 1) {
if(bytes[i-1] != 0) {
i = i -1;
} else {
i = i + 1;
}
}
return new byte(bytes, 0, i, "Unicode");
}
以上是关于Java中根据字节截取字符串的主要内容,如果未能解决你的问题,请参考以下文章
【急求】java 按字节截取字符串,从指定的位置开始,到指定的位置结束