截断字符串并在第n个单词后添加单词

时间:2011-01-05 05:48:22

标签: c# asp.net

我有一个字符串,其值为“Zesty Bean Bites South of the Border”。

我想将其缩减为三个单词并附加省略号,产生“Zesty Bean Bites ......”

我尝试使用substring()方法,但不会在单词上拆分。

3 个答案:

答案 0 :(得分:1)

使用String.Split方法并使用'space'字符作为分隔符。然后使用String.Join方法将它们连接在一起。

答案 1 :(得分:1)

这应该这样做:

string title = "Zesty Bean Bites South of the Border";
string[] aParts = title.split(' ');
string newTitle = aParts[0] + aParts[1] + aParts[2] + "...";

如果在省略号后需要剩下的字符串,请继续:

newTitle += aParts[3] + aParts[4] + aParts[5] + aParts[6];

当然,如果标题长度不同,这在循环中更合适,并在aParts [2]之后添加省略号。为了安全起见,请检查aParts.Length以确保您实际上有三个单词来放置省略号。

答案 2 :(得分:1)

如果少于三个字符串,则处理。

我还考虑通过字符计数来做这件事:

public string NewTitle(string OldTitle)
    {
        int HowManyWords = 3;
        string RetValue = "";
        string[] parts = OldTitle.Split(' ');
        for (int i = 0; i < parts.Length; i++)
        {
            if (i == 0)
            {
                RetValue += parts[i];
            }
            else
            {
                RetValue += " " + parts[i];
            }
            if (i >= (HowManyWords-1))
            {
                break;
            }
        }
        return RetValue;
    }