2011-08-26 23 views
5

私はこれを行う場合は、次の文字列C#で区切り文字で分割/ ASP.Net

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

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

どのように私は、各分割の間で使用されたものを区切り文字のリストを得るのですか?私は文字列全体を再作成しようとしています。

+0

スプリット文字列配列からデリミタを取得することは不可能です。 –

答えて

3

上記の@ Davy8には、組み込みの方法はありません。ここでは、カスタムメソッドを作成するための非常に簡単な例を示します。

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

私が認識している方法はありません。区切り文字を追跡する独自のカスタム分割メソッドを作成する方がよいでしょう。

関連する問題