开发通用类 - 字符串截断篇
/// <summary> /// 截断字符串 /// </summary> /// <param name="source">源字符串</param> /// <param name="length">截取长度</param> /// <param name="isAddEllipsis">结尾是否带有省略号(省略号占用2个长度)</param> /// <returns></returns> public static string CutStringForString(string source, int length, bool isAddEllipsis) { // 空字符串 if (string.IsNullOrEmpty(source)) { return string.Empty; } // 长度不够 char[] sourceArray = source.ToCharArray(); if (sourceArray.Length <= length) { return source; } // 超长、截断 string newStr = source.Substring(0, (isAddEllipsis ? length - 2 : length)); if (isAddEllipsis) { newStr += "……"; } return newStr; } /// <summary> /// 根据字节长度截取字符串 /// </summary> /// <param name="source">源字符串</param> /// <param name="length">截取长度</param> /// <param name="isAddEllipsis">结尾是否带有省略号(省略号占用4个字节)</param> /// <returns></returns> public static string CutStringForByte(string source, int length, bool isAddEllipsis) { // 空字符串 if (string.IsNullOrEmpty(source)) { return string.Empty; } // 长度不够 int sourceByteLength = 0; char[] sourceArray = source.ToCharArray(); for (int i = 0; i < sourceArray.Length; i++) { if (Convert.ToInt32(sourceArray[i]) > 255) { sourceByteLength += 2; } else { sourceByteLength++; } } if (sourceByteLength <= length) { return source; } // 长度超长 //如果结尾添加 … 则要在原本截取长度基础上减去2 if (isAddEllipsis) { length = length - 4; } int k = 0; var newStr = new StringBuilder(); sourceByteLength = 0; while (sourceByteLength < length) { newStr.Append(sourceArray[k]); if (Convert.ToInt32(sourceArray[k]) > 255) { sourceByteLength += 2; } else { sourceByteLength++; } k++; } if (isAddEllipsis) { newStr.Append("……"); } return newStr.ToString(); }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单