.net中字符串的单词

时间:2012-03-01 12:00:04

标签: .net vb.net

我需要保留返回字符串中的前5个单词,剥去余额。

例如。我想通过下面的单词保持“Stackoverflow是一个了不起的资源”

Stackoverflow对开发人员来说是一个了不起的资源

3 个答案:

答案 0 :(得分:2)

首先将字符串拆分为单词:

var words = inputString.Split(' ', StringSplitOptions.RemoveEmptyEntries)

虽然您可能需要使用重载来满足其他空白字符。

接下来的前五个字:

var firstFive = words.Take(5)

这将返回前五个单词,因此输入字符串中少于5个单词无关紧要。

最后重新创建一个句子:

var output = string.Join(" ", firstFive)

显然,您可以将这些步骤结合起来。

答案 1 :(得分:1)

您可以将SubstringIndexOf结合使用。

Dim amazing = "Stackoverflow is amazing"
Dim notAmazing = amazing.Substring(0,  amazing.IndexOf(" is amazing"))

或者您可以使用Remove

Dim notAmazing = amazing.Remove(amazing.IndexOf(" is amazing"))

或(由paulius_i回答)Replace

Dim notAmazing = amazing.Replace(" is amazing", String.Empty)

编辑:您已基本修改了问题,因此以下是获取字符串前n个单词的方法:

Dim amazing = "Stackoverflow is an amazing resources for developers"
Dim words = amazing.Split({" "c}, StringSplitOptions.RemoveEmptyEntries)
Dim first5Words = String.Join(" ", words.Take(5))

答案 2 :(得分:0)

好的,一个更有趣的解决方案:

int remainingWords = 5;
System.Text.RegularExpressions.Regex.Replace("Stackoverflow is an amazing resources for developers", "(.+? )|(.+?)", match =>
        {
        return remainingWords-- > 0 ? match.Value : "";
        });