我需要保留返回字符串中的前5个单词,剥去余额。
例如。我想通过下面的单词保持“Stackoverflow是一个了不起的资源”
Stackoverflow对开发人员来说是一个了不起的资源
答案 0 :(得分:2)
首先将字符串拆分为单词:
var words = inputString.Split(' ', StringSplitOptions.RemoveEmptyEntries)
虽然您可能需要使用重载来满足其他空白字符。
接下来的前五个字:
var firstFive = words.Take(5)
这将返回前五个单词,因此输入字符串中少于5个单词无关紧要。
最后重新创建一个句子:
var output = string.Join(" ", firstFive)
显然,您可以将这些步骤结合起来。
答案 1 :(得分:1)
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 : "";
});