取byte[],判断每个byte的高位,如果是1就是汉字,不是就是字母

解决方案 »

  1.   

    以下这段代码是用PHP写的,能正常运行,要是你懂点的话,转过来用应该没有问题的。呵呵。
    Function getshortstr($longstr,$len){
        if(strlen($longstr)<=$len)
            return $longstr;
        $j = 0;$char=chr(128);
        for($i=0;$i<$len-4;$i++){
            if(substr($longstr,$i,1)>$char)
                $j++;
        }
        if($j % 2==1)
            return substr($longstr,0,$len-3) . "...";
        if(substr($longstr,$len-4,1)<$char)
            return substr($longstr,0,$len-3) . "...";
        return substr($longstr,0,$len-4) . "...";
    };留个QQ:12953091以便联系。
      

  2.   

    public class T{
        public static void main(String[] a){
            String s = "32452345234523452345阿萨沙沙打法沙沙";
            byte[]  bytes = s.getBytes();
            String s1;
            int i ;
            for(i =29 ;i>=0; i--){
                if(bytes[i] > 0)break;
            }
            if(i % 2  == 1)s1 =new String(bytes,0,30);
            else s1 =new String(bytes,0,29);
            System.out.println(s1);
        }
    }
    OK!