c# - 设置字符串的最大长度c#但以整个单词结尾

标签 c# string formatting

如果文本太长,我想截断它,但我需要它截断整个单词。我做了以下事情:

 var mktText = model.Product.MarketingText;
            var countChars = mktText.Length;
            if (countChars > 180)
            {
                countChars = countChars - 180;
                mktText = mktText.Remove(180, countChars);
                mktText = mktText + "...";
            }

此代码将最大字符数设置为 180 个字符,但会将一个单词切成两半,其中我的单词而不是完整的单词。

感谢任何帮助。

谢谢

最佳答案

寻找该位置之前的最后一个空格,并在那里剪切字符串。如果根本没有空格,或者文本中的空格太早,则无论如何都将其剪切为 180。

string mktText = model.Product.MarketingText;
if (mktText.Length > 180) {
  int pos = mktText.LastIndexOf(" ", 180);
  if (pos < 150) {
    pos = 180;
  }
  mktText = mktText.Substring(0, pos) + "...";
}

关于c# - 设置字符串的最大长度c#但以整个单词结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16236428/

相关文章:

c++ - 为什么在 std::cout 上显式调用 operator<< 会导致意外输出?

c - 如何以表格格式将字符串列表打印到文件中?

ios - NSString 检测数字然后括号

c# - 使用 ASP.NET 生成与 Visio 兼容的 XML (VDX)

java - 将所有空字符串属性设置为 null

c# - Server.MapPath 在使用网络图像裁剪库时抛出错误

c - read() 从文件中返回额外的字符

javascript - 如何在javascript中将完整日期转换为短日期?

c# - 防止 Windows 服务管理器停止服务 c#

c# - 移除或添加节点时 TreeView 的事件