2011-08-26 86 views
5

如果我这样做:在C#中的分隔符字符串分割/ ASP.Net

string text = "Hello, how are you?"; 

string[] split = text.Split('h', 'o'); 

如何获得各组之间使用的是什么分隔符的列表?我试图重新创建字符串作为一个整体。

+0

无法从分割字符串数组中获取分隔符。 –

回答

3

由于@戴维8提到,没有内置的方式。以下是一个非常简单的例子,可以帮助您继续编写自定义方法。

void Main() 
{ 
    string text = "Hello, how are you?"; 
    List<SplitDefinition> splitDefinitionList = CustomSplit(text, new char[] { 'h', 'o' }); 
} 

public List<SplitDefinition> CustomSplit(string source, char[] delimiters) 
{ 
    List<SplitDefinition> splitDefinitionList = new List<SplitDefinition>(); 

    foreach(char d in delimiters) 
    { 
     SplitDefinition sd = new SplitDefinition(d, source.Split(d));   
     splitDefinitionList.Add(sd); 
    } 

    return splitDefinitionList; 
} 

public class SplitDefinition 
{ 
    public SplitDefinition(char delimiter, string[] splits) 
    { 
     this.delimiter = delimiter; 
     this.splits = splits; 
    } 

    public char delimiter { get; set; } 
    public string[] splits { get; set; } 
} 
1

这是不可能的。字符串已被拆分,那么如何知道拆分是基于'h'还是'o'?

不管怎么说,如果你能做到这一点:

string[] split = text.Split('h', 'o'); 

那么为什么不也存储这些字符?

2

有没有我知道的内置方式。你可能最好写自己的自定义拆分方法来跟踪分隔符。