C# 在c语言中将字符串拆分为字符串数组#

C# 在c语言中将字符串拆分为字符串数组#,c#,split,C#,Split,如何将字符串拆分为字符串数组 我的绳子看起来像这样 string orgString = "1234-|@$@|-George,Michael -$@%@$-65489-|@$@|-Lawrence, Steve J -$@%@$-7897954-|@$@|-Oliver Mike -$@%@$-56465-|@$@|-Waldimir Tursoky"; 现在我希望我的字符串数组与-|@$@- 我尝试了以下代码 string[] strArray = orgString.Split(n

如何将字符串拆分为字符串数组

我的绳子看起来像这样

string orgString = "1234-|@$@|-George,Michael -$@%@$-65489-|@$@|-Lawrence,  Steve J  -$@%@$-7897954-|@$@|-Oliver Mike  -$@%@$-56465-|@$@|-Waldimir Tursoky";
现在我希望我的字符串数组与
-|@$@-

我尝试了以下代码

string[] strArray = orgString.Split(new string[] {"-$@%@$-"}, StringSplitOptions.RemoveEmptyEntries);
我的输出如下所示:

"1234-|@$@|-George,Michael "
但是我想要的输出是(名字在前,数字在后)


如何在C#中实现这一点?

只需交换结果字符串中的部分:

string orgString = "1234-|@$@|-George,Michael -$@%@$-65489-|@$@|-Lawrence,  Steve J  -$@%@$-7897954-|@$@|-Oliver Mike  -$@%@$-56465-|@$@|-Waldimir Tursoky";
string[] resultingList = orgString.Split(new string[] {"-$@%@$-"}, StringSplitOptions.RemoveEmptyEntries).Select(x=>x.Split(new string[] {"-|@$@|-"}, StringSplitOptions.RemoveEmptyEntries).Aggregate((x11,y)=>{return y+" -|@$@|- "+x11;})).ToArray();
foreach(string result in resultingList)
{
    Console.WriteLine(result);
}

只需交换结果字符串中的部分:

string orgString = "1234-|@$@|-George,Michael -$@%@$-65489-|@$@|-Lawrence,  Steve J  -$@%@$-7897954-|@$@|-Oliver Mike  -$@%@$-56465-|@$@|-Waldimir Tursoky";
string[] resultingList = orgString.Split(new string[] {"-$@%@$-"}, StringSplitOptions.RemoveEmptyEntries).Select(x=>x.Split(new string[] {"-|@$@|-"}, StringSplitOptions.RemoveEmptyEntries).Aggregate((x11,y)=>{return y+" -|@$@|- "+x11;})).ToArray();
foreach(string result in resultingList)
{
    Console.WriteLine(result);
}

您可以再次拆分,然后重新组合

string outerDivider = "-$@%@$-";
string innerDivider = "-|@$@|-";

var results = orgString
    // Split by outer divider
    .Split(new string[] { outerDivider }, StringSplitOptions.RemoveEmptyEntries)
    // Then for each of the results, split again on the inner divider
    .Select(x => x.Split(new string[] { innerDivider }, StringSplitOptions.RemoveEmptyEntries))
    // Swap the order of elements around the inner divider and recombine into a string
    .Select(x => string.Join(innerDivider, x[1], x[0]));

您可以再次拆分,然后重新组合

string outerDivider = "-$@%@$-";
string innerDivider = "-|@$@|-";

var results = orgString
    // Split by outer divider
    .Split(new string[] { outerDivider }, StringSplitOptions.RemoveEmptyEntries)
    // Then for each of the results, split again on the inner divider
    .Select(x => x.Split(new string[] { innerDivider }, StringSplitOptions.RemoveEmptyEntries))
    // Swap the order of elements around the inner divider and recombine into a string
    .Select(x => string.Join(innerDivider, x[1], x[0]));

步骤#1是使用/显示编译C代码。您可以改为使用连字符“-”上的拆分,这样您就有机会重新排列字符串。听起来正则表达式更适合提取这些字符串values@RufusL更新了我的代码。它将立即编译步骤#1是使用/显示编译C#代码。您可以在连字符“-”上使用拆分,然后你有机会重新排列字符串。听起来正则表达式更适合提取这些字符串values@RufusL更新了我的代码,现在可以编译了,谢谢。我很感激。我们不能把它放在字符串数组中而不是变量中吗?@Santosh是的,但在这种情况下你需要添加cast@Santosh我已经更改了答案谢谢。我很感激。我们不能将其放在字符串数组中而不是变量中吗?@Santosh是的,但在这种情况下,您需要添加cast。@Santosh我已更改了答案