Разделение строк с разделителем в C # / ASP.Net - PullRequest
5 голосов
/ 26 августа 2011

Если я сделаю это:

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

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

Как получить список того, какой разделитель использовался между каждым разделением? Я пытаюсь воссоздать строку целиком.

Ответы [ 3 ]

3 голосов
/ 26 августа 2011

Как упомянуто @ 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; }
}
2 голосов
/ 26 августа 2011

Я не знаю, как это устроено.Возможно, вам лучше написать свой собственный метод разделения, который отслеживает разделители.

1 голос
/ 26 августа 2011

Это невозможно. Строка была разделена, так как вы можете узнать, было ли разделение основано на 'h' или 'o'?

В любом случае, если вы можете сделать это:

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

тогда почему бы не сохранить эти символы?

...