C#/ASP.Net中使用分隔符拆分字符串

5
如果我这样做:
 string text = "Hello, how are you?";

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

我该如何获取每个分割符之间使用的分隔符列表? 我正在尝试将整个字符串重新创建。


无法从分割字符串数组中获取分隔符。 - Bala R
3个回答

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; }
}

2

我不知道有内置的方法可以做到这一点。你最好编写自己的自定义分割方法来跟踪分隔符。


1

这是不可能的。字符串已经被分割了,你怎么可能知道分割是基于 'h' 还是 'o'?

无论如何,如果你能做到这一点:

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

那为什么不把这些字符也存储起来呢?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接