`
heavenslv
  • 浏览: 80986 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

根据字符长度截取而非字节长度截取的方法

    博客分类:
  • C#
 
阅读更多

 

public static string GetChStringByLength(string s, int len)
        {
            byte[] data = Encoding.GetEncoding("GB18030").GetBytes(s);
            //算出需要截取的byte长度
            len *= 2;
            //如果长度小于等于指定长度则直接返回
            if (data.Length <= len)
            {
                return s;
            }

            //判断最后一个字节是否为汉字,如果是则截取掉最后一个byte
            int chByteLen = 0; //中文字节的长度
            for (int i = len - 1; i >= 0; i--)
            {
                if (data[i] >= 128)
                {
                    //记录中文字节长度
                    chByteLen++;
                }
                else
                {
                    break;
                }
            }

            //如果是奇数则截取掉最后一个byte
            if (chByteLen % 2 == 1)
            {
                len--;
            }

            byte[] newData = new byte[len];
            Array.Copy(data, newData, len);

            return Encoding.GetEncoding("GB18030").GetString(newData);
        }
1
1
分享到:
评论

相关推荐

    C# 按照字节长度截取字符串

    C# 按照字节长度截取字符串,可以截取任意字节长度得字符串,使用了一点正则表达式。

    C#字符串截取固定长度的方法

    C#字符串截取固定长度的方法

    截取指定长度的字符串

    自己输入一个字符串,字符串中可以包括字符和汉字,截取指定的字符串

    超实用c#按字节截取长度(原创)

    1、 当字符串全部为单字节字符时,则可以用SubString方法截取指定长度即可。 2、 当字符串全部为双字节字符时,则只需要用SubString方法截取指定长度的一半 3、 当字符串为单字节双字节混合时,则我们可以用折中这样...

    按字节长度截取字符串(支持截取带HTML代码样式的字符串)

    按字节长度截取字符串(支持截取带HTML代码样式的字符串) ,补全不完整的HTML代码

    oracle按特定字符截取字符串

    oracle,按特定字符,截取字符串,直接出结果 oracle,按特定字符,截取字符串,直接出结果oracle,按特定字符,截取字符串,直接出结果

    java 字符串截取工具类

    java 字符串截取工具类java 字符串截取工具类

    js截取字符串-三种方法

    substr() 方法能够根据指定长度来截取子字符串。它包含两个参数,第一个参数 表示准备截取的子字符串起始下标,第二个参数表示截取的长度。 示例 1 在下面示例中使用 lastIndexOf() 获取字符串的最后一个点号的下标...

    字符串截取(按字节)

    字符串截取,按字节截取字符串,截取字符串帮助类

    字符串截取字符的超强方法【引用】

    字符串截取字符的超强方法【引用】字符串截取字符的超强方法【引用】字符串截取字符的超强方法【引用】

    字符串按照指定的字节数来截取

    字符串按照指定的字节数来截取

    C语言实现字符串截取

    自己写的字符串截取,很灵活,很好用。你也可以自己修改。

    Substring字符串截取-kaic

    substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 ...

    字符长度计算和长度截取显示

    js字符长度的计算和点点点代替字符,对于列表中名称的长度过长时可以用...代替。

    详解C++ string常用截取字符串方法

    string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos); 其中strSub是需要寻找的子字符串,npos为查找起始位置。找到返回子...

    js截取固定长度字符

    js获得字符真实长度,如果长度超过len值,js截取固定长度字符

    C#截取指定长度的方法

    例如要截取字符串"我是1个中国人",取3位长度,那得到的结果是"我",如果取6位长度,得到的结果是"我是1",因为汉字是两个字节。 当时的思路主要是考虑最后一位是单字节还是双字节,不过最终得出了比较不错的方法

    js 字符串截取

    使用一个指定的分隔符把一个字符串分割存储到数组 使用您选择的分隔符将一个数组合并为一个字符串 返回字符串中匹配子串的第一个字符的下标

    C#区分中英文按照指定长度截取字符串的方法

    本文实例讲述了C#区分中英文按照指定长度截取字符串的方法。分享给大家供大家参考。具体如下: 这段C#代码用于按照指定的长度截取字符串,一个中文字符算2个字符,按照这个方法截取的字符串基本可以保持显示长度一致...

    shell中字符串截取

    shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串...

Global site tag (gtag.js) - Google Analytics