从字符串中截取等长字节

2014-11-24 07:51:15 · 作者: · 浏览: 0

在页面显示的时候,有时候文字无法显示完全,就只能显示部分文字,但是直接截取就只能截取等长字符串,英文和中文很难处理

所以就写了下面方法,截取等长字符

public static void main(String[] args) {
		
		String str = "20120131:《回家》1你好么" ; 
		
		System.out.println( subString(str , 10 ) ) ; 
	}
	public static String subString(String str , int len){
		len *= 2 ; 
		byte[]bytes = str.getBytes() ;
		if(bytes.length <= len){
			return str ;
		} 
		
		byte[]newBytes = Arrays.copyOf( bytes, len ) ; 
		int count = 0 ;
		for(byte b : newBytes){
			if(b < 0){
				count++;
			}
		}
		if(count % 2 != 0){
			
			len ++;
			newBytes = Arrays.copyOf( bytes, len ) ; 
		}
		
	
		return new String( newBytes ) + ".." ;  
	}

转转请表明出处:http://blog.csdn.net/hfmbook/article/details/17277703