简体   繁体   中英

How to split a string with a certain character without considering the length of the character?

I'm trying to work on this string

    abc
    def
    --------------
    efg
    hij    
    ------
    xyz
    pqr
    --------------

Now I have to split the string with the - character. So far I'm first spliting the string in lines and then finding the occurrence of - and the replacing the line with a single *, then combining the whole string and splitting them again.

I'm trying to get the data as

string[] set = 
{
    "abc 
    def",
    "efg
    hij",
    "xyz
    pqr"
}

Is there a better way to do this?

var spitStrings = yourString.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);

如果我理解您的问题,以上代码即可解决。

I'm confused with exactly what you're asking, but won't this work?

string[] seta = 
{
    "abc\ndef",
    "efg\nhij",
    "xyz\npqr"
}

\\n = CR (Carriage Return) // Used as a new line character in Unix

\\r = LF (Line Feed) // Used as a new line character in Mac OS

\\n\\r = CR + LF // Used as a new line character in Windows

(char)13 = \\n = CR // Same as \\n

If I'm understanding your question about splitting - 's then the following should work.

string s = "abc-def-efg-hij-xyz-pqr"; // example?
string[] letters = s.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);

If this is what your array looks like at the moment, then you can loop through it as follows:

string[] seta = {
    "abc-def",
    "efg-hij",
    "xyz-pqr"
};

foreach (var letter in seta)
{
    string[] letters = letter.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
    // do something with letters?
}

Use of string split function using the specific char or string of chars (here -) can be used. The output will be array of strings. Then choose whichever strings you want. Example:

I'm sure this below code will help you...

    string m = "adasd------asdasd---asdasdsad-------asdasd------adsadasd---asdasd---asdadadad-asdadsa-asdada-s---adadasd-adsd";
    var array = m.Split('-');

    List<string> myCollection = new List<string>();

    if (array.Length > 0)
    {
        foreach (string item in array)
        {
            if (item != "")
            {
                myCollection.Add(item);
            }
        }
    }

    string[] str = myCollection.ToArray();

if it does then don't forget to mark my answer thanks....;)

string set = "abc----def----------------efg----hij--xyz-------pqr" ;
var spitStrings = set.Split(new char[]{'-'},StringSplitOptions.RemoveEmptyEntries);

EDIT -

He wants to split the strings no matter how many '-' are there.

var spitStrings = set.Split(new char[]{'-'},StringSplitOptions.RemoveEmptyEntries);

This will do the work.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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