从字符串中截取等长字节的Java代码

时间:2021-11-23 05:24:36

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

复制代码代码如下:


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 ) + ".." ;  
 }