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);
}
分享到:
相关推荐
C# 按照字节长度截取字符串,可以截取任意字节长度得字符串,使用了一点正则表达式。
C#字符串截取固定长度的方法
自己输入一个字符串,字符串中可以包括字符和汉字,截取指定的字符串
1、 当字符串全部为单字节字符时,则可以用SubString方法截取指定长度即可。 2、 当字符串全部为双字节字符时,则只需要用SubString方法截取指定长度的一半 3、 当字符串为单字节双字节混合时,则我们可以用折中这样...
按字节长度截取字符串(支持截取带HTML代码样式的字符串) ,补全不完整的HTML代码
oracle,按特定字符,截取字符串,直接出结果 oracle,按特定字符,截取字符串,直接出结果oracle,按特定字符,截取字符串,直接出结果
java 字符串截取工具类java 字符串截取工具类
substr() 方法能够根据指定长度来截取子字符串。它包含两个参数,第一个参数 表示准备截取的子字符串起始下标,第二个参数表示截取的长度。 示例 1 在下面示例中使用 lastIndexOf() 获取字符串的最后一个点号的下标...
字符串截取,按字节截取字符串,截取字符串帮助类
字符串截取字符的超强方法【引用】字符串截取字符的超强方法【引用】字符串截取字符的超强方法【引用】
字符串按照指定的字节数来截取
自己写的字符串截取,很灵活,很好用。你也可以自己修改。
substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 substring截取字符串 ...
js字符长度的计算和点点点代替字符,对于列表中名称的长度过长时可以用...代替。
string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos); 其中strSub是需要寻找的子字符串,npos为查找起始位置。找到返回子...
js获得字符真实长度,如果长度超过len值,js截取固定长度字符
例如要截取字符串"我是1个中国人",取3位长度,那得到的结果是"我",如果取6位长度,得到的结果是"我是1",因为汉字是两个字节。 当时的思路主要是考虑最后一位是单字节还是双字节,不过最终得出了比较不错的方法
使用一个指定的分隔符把一个字符串分割存储到数组 使用您选择的分隔符将一个数组合并为一个字符串 返回字符串中匹配子串的第一个字符的下标
本文实例讲述了C#区分中英文按照指定长度截取字符串的方法。分享给大家供大家参考。具体如下: 这段C#代码用于按照指定的长度截取字符串,一个中文字符算2个字符,按照这个方法截取的字符串基本可以保持显示长度一致...
shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串截取shell中字符串...