简体   繁体   English

如何在C#中使用Split()方法获取n部分字符串?

[英]How to take n part of String using Split() method in C#?

I have string str = "Join Smith hate meat" . 我有字符串str = "Join Smith hate meat"

I want to get JoinSmith from this str . 我想从这个str获得JoinSmith

I tried code: 我试过代码:

private static string GetFirstWord(string str)
{
    return str.Split(' ').Take(2).ToString();
}

This code not working for me. 这段代码对我不起作用。

I tried: return str.Split(' ').FirstOrDefault it get only first part of string Join . 我试过: return str.Split(' ').FirstOrDefault它只得到字符串Join第一部分。

采用

string result = string.Concat(str.Split(' ').Take(2)); // "JoinSmith"

A Fancy combination: 一个奇特的组合:

var result = string.Join(String.Empty, str.Split(' ').Take(2));

Takes the first two words, joins them into one string. 取前两个单词,将它们连接成一个字符串。

Or: 要么:

var result = string.Concat(str.Split(' ').Take(2));

Something a little different 有点不同的东西

var result = new string(TakeAllUntilSecondSpace(str).ToArray());

Yield the characters you want... sometimes this is a good way if you need a lot of control that standard methods don't provide. 产生你想要的字符...有时这是一个很好的方法,如果你需要很多标准方法不提供的控制。

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;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM