"Unicode"编码,java实现一个按字节截取字符串的子串的方法
来源:互联网 发布:万方数据库与中国知网 编辑:程序博客网 时间:2024/05/16 08:58
public static String bSubstring(String s, int length) throws UnsupportedEncodingException {
byte[] b=s.getBytes("Unicode");
//字节数组前两位是符号位,故i从2开始
int i=2;
int n=0;//记录当前截取字节数
//根据截取长度n来判断i的值
for (; i < b.length && n<length; i++) {
//当i为奇数时
if(i%2==1){
n++;
}else{
//当b[i]不为0时,是汉字,汉字是两个字节,故n要加两次。而字母是算一个字节,故n只加一次
if(b[i]!=0){
n++;
}
}
}
//如果i是奇数时,判断最后一位是否是汉字,如果是汉字则舍弃第b[i],如果是英文,则i++
if(i%2==1){
//如果i是奇数,并且后一位不是0,则是汉字位置
if(b[i-1]!=0){
i--;
}else{
i++;
}
}
byte[] b=s.getBytes("Unicode");
//字节数组前两位是符号位,故i从2开始
int i=2;
int n=0;//记录当前截取字节数
//根据截取长度n来判断i的值
for (; i < b.length && n<length; i++) {
//当i为奇数时
if(i%2==1){
n++;
}else{
//当b[i]不为0时,是汉字,汉字是两个字节,故n要加两次。而字母是算一个字节,故n只加一次
if(b[i]!=0){
n++;
}
}
}
//如果i是奇数时,判断最后一位是否是汉字,如果是汉字则舍弃第b[i],如果是英文,则i++
if(i%2==1){
//如果i是奇数,并且后一位不是0,则是汉字位置
if(b[i-1]!=0){
i--;
}else{
i++;
}
}
return new String(b,0,i,"Unicode");//返回按照索引生成字符串
}
0 0
- "Unicode"编码,java实现一个按字节截取字符串的子串的方法
- 按字节来截取字符串子串的方法
- 用Java实现按字节长度截取字符串的方法
- 用Java实现按字节长度截取字符串的方法
- 用Java实现按字节长度截取字符串的方法
- Java实现按字节长度截取字符串的方法
- Java实现按字节长度截取字符串的方法
- 用Java实现按字节长度截取中英文数字字符串的方法总结
- 用Java实现按字节长度截取中英文数字字符串的方法总结
- 用Java实现按字节长度截取中英文数字字符串的方法总结
- 编写一个截取字符串的函数,按字节截取
- 写一个方法,按字节截取字符串
- 按 字节截取分别以GBK 和 utf-8 编码的 字符串的java程序。
- Java编写一个截取字符串的函数,输入一个为字符串和字节数,输出按字节截取的字符串。要求不能出现截半的情况
- java笔试题之 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串
- JAVA:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的 字符串
- Java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串
- 字符串的按字节截取
- 小明看旗
- Linux下java安装
- Scenario Groups各个状态代表的含义
- 703n 刷机增加无线收发串口信息功能
- 学习笔记之NDK使用(只针对r7c版本以下的NDK)
- "Unicode"编码,java实现一个按字节截取字符串的子串的方法
- 青冥剑
- Kinect学习笔记七CoordinateMapping下
- 编程珠玑:第一章开篇课后题解答
- smarty模板简单的使用
- 【2016-大连赛区网络赛-I】补图最短路(Sparse Graph,hdu 5876)
- Eclipse中Recyclerview跟Coordinatorlayout使用的系列问题
- Add and Search Word - Data structure design
- 703n各种救砖方法汇总