如何在不考虑角色长度的情况下拆分具有特定字符的字符串?

时间:2016-06-08 05:43:39

标签: c#

我正在尝试使用此字符串

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

现在我必须用-字符拆分字符串。 到目前为止,我首先将字符串拆分为行,然后查找-的出现并用单个*替换该行,然后将整个字符串组合并再次拆分它们。

我正在尝试将数据作为

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

有更好的方法吗?

5 个答案:

答案 0 :(得分:4)

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

如果我理解你的问题,上面的代码解决了它。

答案 1 :(得分:1)

我对你提出的要求感到困惑,但这不会有效吗?

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

如果我理解您关于拆分-的问题,那么以下内容应该有效。

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

如果这是你的数组目前的样子,那么你可以循环遍历它:

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

答案 2 :(得分:1)

可以使用字符串拆分功能使用特定的字符串或字符串(此处为 - )。 输出将是字符串数组。然后选择您想要的任何字符串。 示例:

答案 3 :(得分:1)

我确定以下代码可以帮助您...

    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();

如果确实如此,请不要忘记标记我的回答,谢谢......;)

答案 4 :(得分:0)

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

编辑 -

无论有多少&#39; - &#39;他都希望分割​​弦乐。在那儿。

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

这将完成工作。