您的位置:首页 > 其它

截取字符串函数和字节数,输出为按字节截取的字符串

2018-09-17 19:10 295 查看

主要设计思想:
通过String(byte[] bytes,Charset charset) 方法,获得字符串的字节数,得到一个byte类型的数组。然后通过substring()方法进行字符串的截取。
而截取过程的准确性则将byte型的数组截取的结束索引值 当作参数传到截取函数中。
定义初始值p为false,通过byte[i]>0,即当前字符数组为汉字。(中文存储在byte数组中是补码的形式存储,为负值)。 num是通过一个boolean型标识实现num的累加。用来确定截取的位置的,循环次数为传进来的参数,实际返回的值为num=n-(2-1)*汉字数。

import java.io.UnsupportedEncodingException;

/*编写字符串截取函数,输入一个字符串和字节数,输出为按字节截取的字符串*/
public class Test288 {
public static void main(String[]args) throws UnsupportedEncodingException {
//String s1="我ABC";
String s2="我ABC加CD";
int num=trimGBK(s2.getBytes("GBK"),6);
System.out.println(s2.substring(0,num));
}

private static int trimGBK(byte[] bytes, int n) {
int num = 0;
// TODO Auto-generated method stub
boolean p=false;
for(int i=0;i<n;i++) {
if(bytes[i]<0&&!p) {
p=true;
}else {
num++;
p=false;
}
}
/*输出结果为9
System.out.println(bytes.length);
//结果为4
System.out.println(num);
*/
return num;
}
}
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐