Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29546
  • 博文数量: 32
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 15
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-14 09:52
文章分类

全部博文(32)

文章存档

2015年(32)

我的朋友

分类: Java

2015-05-14 10:23:18

原文地址:按双字节长度来取String 作者:yong_kang

    /*
     * String.valueOf(arr[i]).matches("[\u4e00-\u9fa5]") 只是汉字
     * String.valueOf(arr[i]).matches("[^x00-xff]") 双字节(包括汉字)
     */

    public static String getStrBylength(String str , int len)
    {
        if(null == str)
            return "";
        int sl = str.getBytes().length;
        if(sl>len*2)
        {
            StringBuffer sb = new StringBuffer();
            char[] arr = str.toCharArray();
            for (int i = 0,j=0; i<arr.length && j<len*2; i++) {
                if (String.valueOf(arr[i]).matches("[^x00-xff]")) {
                    j+=2;
                } else {
                    j++;
                }
                if(j==len*2-1 && String.valueOf(arr[i]).matches("[^x00-xff]"))
                {
                    
                }
                else
                {
                    sb.append(arr[i]);
                }            
            }
            return sb.toString()+"...";
        }
        else
        {
            return str;
        }
    }

阅读(342) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~