Split string based on the first occurrence of the character

后端 未结 6 1835
南笙
南笙 2020-12-08 12:52

How can I split a C# string based on the first occurrence of the specified character? Suppose I have a string with value:

101,a,b,c,d

I wa

相关标签:
6条回答
  • 2020-12-08 13:11

    Use string.Split() function. It takes the max. number of chunks it will create. Say you have a string "abc,def,ghi" and you call Split() on it with count parameter set to 2, it will create two chunks "abc" and "def,ghi". Make sure you call it like string.Split(new[] {','}, 2), so the C# doesn't confuse it with the other overload.

    0 讨论(0)
  • 2020-12-08 13:12

    In .net Core you can use the following;

    var pieces = myString.Split(',', 2);
    

    Returns:

    101
    a,b,c,d
    
    0 讨论(0)
  • 2020-12-08 13:14

    You can specify how many substrings to return using string.Split:

    var pieces = myString.Split(new[] { ',' }, 2);
    

    Returns:

    101
    a,b,c,d
    
    0 讨论(0)
  • 2020-12-08 13:22
    var pieces = myString.Split(',', 2);
    

    This won't work. The overload will not match and the compiler will reject it.

    So it Must be:

    char[] chDelimiter = {','};
    var pieces = myString.Split(chDelimiter, 2);
    
    0 讨论(0)
  • 2020-12-08 13:33
    string s = "101,a,b,c,d";
    int index = s.IndexOf(',');
    string first =  s.Substring(0, index);
    string second = s.Substring(index + 1);
    
    0 讨论(0)
  • 2020-12-08 13:33

    You can use Substring to get both parts separately.

    First, you use IndexOf to get the position of the first comma, then you split it :

    string input = "101,a,b,c,d";
    int firstCommaIndex = input.IndexOf(',');
    
    string firstPart = input.Substring(0, firstCommaIndex); //101
    string secondPart = input.Substring(firstCommaIndex + 1); //a,b,c,d
    

    On the second part, the +1 is to avoid including the comma.

    0 讨论(0)
提交回复
热议问题