如何在C#中使用Split()方法获取字符串的n部分?
我有string如何在C#中使用Split()方法获取字符串的n部分?,c#,string,C#,String,我有stringstr=“Join Smith hate meat” 我想从这个str获取JoinSmith 我尝试了以下代码: private static string GetFirstWord(string str) { return str.Split(' ').Take(2).ToString(); } 这个代码对我不起作用 我试过:return str.Split('').FirstOrDefault它只得到字符串的第一部分Join一个奇特的组合: var result =
str=“Join Smith hate meat”
我想从这个str
获取JoinSmith
我尝试了以下代码:
private static string GetFirstWord(string str)
{
return str.Split(' ').Take(2).ToString();
}
这个代码对我不起作用
我试过:return str.Split('').FirstOrDefault
它只得到字符串的第一部分Join
一个奇特的组合:
var result = string.Join(String.Empty, str.Split(' ').Take(2));
将前两个单词合并成一个字符串
或:
使用
有点不同
var result = new string(TakeAllUntilSecondSpace(str).ToArray());
产生你想要的角色。。。有时,如果您需要很多标准方法无法提供的控制,那么这是一种很好的方法
private IEnumerable<char> TakeAllUntilSecondSpace(string s)
{
var spaceEncountered = false;
foreach (char c in s)
{
if (c == ' ')
{
if (spaceEncountered) yield break;
spaceEncountered = true;
} else yield return c;
}
}
private IEnumerable TakeAllentilSecondSpace(字符串s)
{
var=false;
foreach(字符c在s中)
{
如果(c='')
{
如果(遇到)屈服断裂;
空格=真;
}否则收益率c;
}
}
因此,这不是用户之间的竞争。我认为这应该是答案之间的竞争。因此,搜索解决方案的人通过选择投票最多的答案获得最佳结果。在这种情况下,string.Concat
应该用于strign.Join
I投票支持你的答案。我认为@user3185569会在您的答案之前回复,并且会起作用。之后,他更新了答案。@VănLộ两个答案都有效string.Concat()
是这种情况下更好的解决方案(性能和可读性)。把我的答案复制到他的答案里,我的答案就过时了。依我看,这不是应该怎么做的。
var result = new string(TakeAllUntilSecondSpace(str).ToArray());
private IEnumerable<char> TakeAllUntilSecondSpace(string s)
{
var spaceEncountered = false;
foreach (char c in s)
{
if (c == ' ')
{
if (spaceEncountered) yield break;
spaceEncountered = true;
} else yield return c;
}
}