java实现截取6个汉字字母数字

项目中使用到需要截取6个字(12个字母或数字),解决方法如下:

/**
     * 
     * @方法名称:getWordCount
     * @内容摘要: <截取输入字符串 大于6个后显示...>
     * @param str
     * @return String
     * @exception
     * @author:
     * @创建日期:2016年9月5日-下午1:30:41
     */
    public static String getWordCount(String str) {
        try {
            String symbol = "...";
            int len = 10;
            int counterOfDoubleByte = 0;
            byte b[] = str.getBytes("GBK");
            if (b.length <= len)
                return str;
            for (int i = 0; i < len; i++) {
                if (b[i] < 0)
                    counterOfDoubleByte++;
            }
            if (counterOfDoubleByte % 2 == 0)
                return new String(b, 0, len, "GBK") + symbol;
            else
                return new String(b, 0, len - 1, "GBK") + symbol;

        } catch (UnsupportedEncodingException e) {
            logger.error("截取字符串getWordCount异常:", e);
            return "";
        }
    }

运行结果:
一个数字或字母是一个字节,一个汉字是两个字节
这里写图片描述

posted @ 2016-09-05 15:38  IT打工匠  阅读(604)  评论(0编辑  收藏  举报