0

可能重复:
在 .Net C# 中截断整个单词的字符串

我必须显示新闻的简短描述,让我们说最多 200 个字符并修剪最后几个字符直到空白,我不确定如何在字符串上触发这种

示例文本

sample news description of news sample news description of news sample news description of news sample news description of news sample news description of news sample news description of news sample news description of news.

输出代码如下

sample news description of news sample news description of news sample news description of news sample news description of news sample news description of news sample news description of news sample n

    if (sDesc.Length > 200)
    {
        sDesc = sDesc.Substring(0, 200);
       // sDesc = sDesc + "...";
    }

我怎样才能修剪最后几个字符,使其不显示单词的一部分。我希望你明白我想说什么。

所需的输出

新闻样本新闻描述 新闻样本新闻描述 新闻样本新闻描述 新闻样本新闻描述 新闻样本新闻描述 新闻样本新闻描述 新闻样本新闻描述

4

4 回答 4

9

您应该在 200 索引之前找到该空间的索引。所以搜索所有出现,然后选择最接近 200 的索引。然后使用这个索引做一个子字符串,你应该很好去

string myString = inputString.Substring(0, 200);

int index = myString.LastIndexOf(' ');

string outputString = myString.Substring(0, index);
于 2012-10-09T12:57:11.407 回答
3
if (sDesc.Length > 200)
{
    var str = sDesc.Substring(0, 200);
    var result = str.Substring(0, str.LastIndexOf(' '));
}
于 2012-10-09T13:04:28.613 回答
1

作为公认的答案,这将更快,因为它通过不首先在 200 处切断,而是使用 LastIndexOf 的 start 和 count 参数来减少一次 stringcopy

            var lio = inputString.LastIndexOf(' ', 0, 200));
            if (lio==-1) lio = 200;
            var newString = inputString.Remove(lio);
于 2012-10-09T15:55:15.990 回答
0

您可以找到 200 之后的空格并将子字符串取到索引 200 之后的第一个空格。

int i = 200;
for(i=200; i < sDesc.Length; i++)
{
      if(input[i] == ' ')
         break;
}

string res = sDesc.Substring(0, i);
于 2012-10-09T13:05:59.353 回答