如果文本太长,我想截断文本,但是我需要截断整个单词。我已经完成以下工作:

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


这段代码将最大字符数设置为180个字符,但会将一个单词切成一半,而第i个单词则包含完整的单词。

任何帮助表示赞赏。

谢谢

最佳答案

寻找该位置之前的最后一个空格,然后在该处剪切字符串。如果根本没有空格,或者文本中的空格太早,则无论如何都应将其剪切为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) + "...";
}

10-04 11:38