如题,包括中文 怎么求?? 比如我想求“我abc”的长度。并不是字符串的长度,而是按GBK 或者UTF-8的标准的长度 这个应该是5  大家帮帮忙。谢谢了。

解决方案 »

  1.   

    1 在这个问题上,忘记正则表达式
    2 准确的提法不是字符串长度(这个长度一般就是指字符长度),而是其字节长度    System.out.println("我abc".getBytes("GBK").length);
        System.out.println("我abc".getBytes("UTF-8").length);
      

  2.   

    正则不知道。等待
    str.getBytes().length
      

  3.   


     /**
         * 获取字符串的长度,如果有中文,则每个中文字符计为2位
         * 
         * @param value
         *            指定的字符串
         * @return 字符串的长度
         */
        public static int length(String value) {
            int valueLength = 0;
            String chinese = "[\u0391-\uFFE5]";
            /* 获取字段值的长度,如果含中文字符,则每个中文字符长度为2,否则为1 */
            for (int i = 0; i < value.length(); i++) {
                /* 获取一个字符 */
                String temp = value.substring(i, i + 1);
                /* 判断是否为中文字符 */
                if (temp.matches(chinese)) {
                    /* 中文字符长度为2 */
                    valueLength += 2;
                } else {
                    /* 其他字符长度为1 */
                    valueLength += 1;
                }
            }
            return valueLength;
        }
    试试看吧
      

  4.   

    转UTF-8 一个中文算3个长度诶。。 纳闷
      

  5.   


    没什么纳闷的,这个是UTF-8,不是Unicode。UTF-8字母1个字节,所以很多*ML(html,xml)文档,都是用utf-8,因为大部分*ml,里面都是<xxxx>占据的空间