如何使用c#中的字符分隔符将字符串拆分为两部分?

时间:2011-05-22 13:07:07

标签: c# .net string split

使用单字符分隔符将字符串拆分为两个部分的最佳方法是什么?

应该在分隔符的第一个实例上拆分字符串。该方法应考虑性能。它不应该假设分隔符存在于字符串中,字符串具有任何字符等;应该是通用代码,您只需在任何需要的地方插入即可。

(每当我需要它时,我总是需要花几分钟时间重写这种事情,所以我想我会提出一个问题)

4 个答案:

答案 0 :(得分:8)

如果你真的想要只有两个结果,请使用字符串split方法和第二个参数:

string[] words = myString.Split(new char[]{' '}, 2);

答案 1 :(得分:3)

var part1 = myString.SubString(0, myString.IndexOf(''));
var part2 = myString.SubString(myString.IndexOf(''), myString.Lenght);

答案 2 :(得分:0)

    string[] SplitStringInTwo(string input, char separator)
    {
        string[] results = new string[2];
        if (string.IsNullOrEmpty(input)) return results;
        int splitPos = input.IndexOf(separator);
        if (splitPos <= 0) return results;
        results[0] = input.Substring(0, splitPos);
        if (splitPos<input.Length)
            results[1] = input.Substring(splitPos + 1);
        return results;
    }

答案 3 :(得分:0)

  

(每当我需要它时,我总是需要花几分钟时间重写这种事情,所以我想我会提出一个问题)

如果您经常需要此功能,可以将首选方式转换为extension method。根据Teoman Soygul的建议:

public static class StringExtensions
{
  public static string[] TwoParts(this String str, char splitCharacter)
  {
    int splitIndex = str.IndexOf(splitCharacter);
    if(splitIndex == -1)
      throw new ArgumentException("Split character not found.");

    return new string[] {
      str.SubString(0, splitIndex),
      str.SubString(splitIndex, myString.Lenght) };
  }
}