拆分字符串var

时间:2010-03-12 18:32:25

标签: c# string split

假设我有这个字符串var:

string strData = "1|2|3|4||a|b|c|d"

然后,我做了一个分裂:

string[] strNumbers = strData.Split("||"); //something like this, I know It's not this simple

我需要两个独立的部分,每个部分包含:

//strNumbers -> {"1","2","3","4"},{"a","b","c","d"}

在那之后,我可以这样做:

string[] strNumArray = strNumbers[0].Split('|');
//strNumArray -> '1', '2', '3', '4'

与其他部分(字母)相同。

有可能吗?使用相同的字符进行双重拆分,但第一次重复两次字符?。

感谢。

PD。我正在使用C#。

3 个答案:

答案 0 :(得分:5)

它会正常工作,你的语法就会关闭。

首先,您的声明已关闭。你想要类型的[],而不是名称。

其次,在String.Split上,有一个重载,它接受一个字符串数组和一个StringSplitOptions。只是想做“||”将调用param char重载,这是无效的。

所以试试这个:

string strData = "1|2|3|4||a|b|c|d";
string[] strNumbers = strData.Split(new[] {"||"}, StringSplitOptions.None);
string[] strNumArray = strNumbers[0].Split('|');

如果需要,可以将StringSplitOptions更改为RemoveEmptyEntries。

答案 1 :(得分:0)

<。>在.net 3.5中:

string strData = "1|2|3|4||a|b|c|d";  
var s1 = strData.Split(new string[] { "||" }, StringSplitOptions.None);
var numbers = s1[0].Split('|');
var letters = s1[1].Split('|');

答案 2 :(得分:-1)

    Dim s As String = "1|2|3|4|5|6|7||a|b|c|d|e|f"
    Dim nums() As String = s.Split(New String() {"||"}, StringSplitOptions.None)(0).Split("|")
    Dim strs() As String = s.Split(New String() {"||"}, StringSplitOptions.None)(1).Split("|")