【分享+原创+散分】高效中英文字符串截取方法

NqIceCoffee NqIceCoffee 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
public static string Intercept(string input, int p)
{
Encoding encode = Encoding.GetEncoding("gb2312");
byte[] byteArr = encode.GetBytes(input);
if (byteArr.Length <= p) return input;

int m = 0, n = 0;
foreach (byte b in byteArr)
{
if (n >= p) break;
if (b > 127) m++; //重要一步:对前p个字节中的值大于127的字符进行统计
n++;
}
if (m % 2 != 0) n = p + 1; //如果非偶:则说明末尾为双字节字符,截取位数加1

return encode.GetString(byteArr, 0, n);
}


测试代码:
Console.WriteLine(Intercept("ABC中国人", 7));
Console.WriteLine(Intercept("ABCD中国人", 7));
Console.WriteLine(Intercept("ABC中D国人", 7));


在网上也发现了一些截取函数,但大都使用正则或者字符串的截取,方法性能相对低下

今天看了一些关于.NET编码的文章,于是有了今天的方法,其实原理很简单,不过没见网上有过。

所以拿来分享~

大牛们表笑话我哈

另:没经过严格测试,如果有BUG,请跟贴,谢谢~~
...全文

相关推荐

PHP指定截取字符串中的中英文或数字字符的实例分享

本文将详细介绍如何在PHP中指定截取字符串中的中英文或数字字符,并分享过滤字符串中空格的实例。首先,处理字符串时需要明白中英文字符编码上的差异。

假装高冷小姐姐

asp截取字符串的两种应用 原创

本文档探讨了在ASP编程环境下,截取字符串的两种常见应用场景。首先,作者分享了一个名为`cutstr`的函数,用于纯粹的字符串截取。该函数接收两个参数:一个待处理的字符串`thestr1`和一个指定的

weixin_38705558

ASP.NET两个截取字符串的方法分享

在ASP.NET开发中,字符串处理是一项常见的任务,尤其是在构建用户界面和处理用户输入时。本文主要介绍了两种实用的字符串截取方法,适用于不同的场景和需求。首先,我们来看第一个方法`CutStr(s

weixin_38628647

php对包含html标签的字符串进行截取的函数分享

**函数实现**: - 使用`mb_strlen`函数计算字符串的长度,考虑中英文字符。 - 如果字符串长度小于截取长度,直接返回原字符串。

weixin_38666232

.NET截取指定长度汉字超出部分以&quot;...&quot;代替 实例分享

在.NET开发中,正确处理字符串非常重要,尤其是在处理涉及多种语言和字符集的全球化应用时。在本实例中,使用的方法能够有效地处理中英文混合的字符串,而不会因为截断操作导致文本内容的语义发生变化。

weixin_38517095
评论 269
收藏 已收藏
分享
返回顶部
NqIceCoffee
.NET社区 62,271 成员 668,968 内容