`

interview----strChina

 
阅读更多
1、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉的半个”。

public static void main(String[] args)throws Exception  {
			String str = "我爱中华";
			int num = trimGBK(str.getBytes(),5);
			System.out.println(str.substring(0,num ));  //substring是说字符,而不是字节长度
	}
	
	public static int  trimGBK(byte[] buf,int n){
		int num = 0;  //代表字符数量
		boolean isFirst = true;
		for(int i=0;i<n;i++)
		{
			if(buf[i]<0 ){ //buf[i]<0说明这个里面放的是中文,所以需要两次小于0才能++
				if(!isFirst){ //第一次进入就意味着这是半个字节,那么num不加
					num +=1;  //如果两个中文字节,那么字符加1
				}
				isFirst = !isFirst;
			}else{ 
				num++;
			}
		}
		return num;
	}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics