【发布时间】:2011-11-04 19:00:05
【问题描述】:
如果我这样做:
string text = "Hello, how are you?";
string[] split = text.Split('h', 'o');
如何获取每个拆分之间使用的分隔符的列表?我正在尝试重新创建整个字符串。
【问题讨论】:
-
无法从拆分字符串数组中获取分隔符。
标签: c# asp.net string split delimiter
如果我这样做:
string text = "Hello, how are you?";
string[] split = text.Split('h', 'o');
如何获取每个拆分之间使用的分隔符的列表?我正在尝试重新创建整个字符串。
【问题讨论】:
标签: c# asp.net string split delimiter
正如@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; }
}
【讨论】:
据我所知,没有一种内置方式。您最好编写自己的自定义拆分方法来跟踪分隔符。
【讨论】:
这是不可能的。字符串已被拆分,那么您怎么可能知道拆分是基于“h”还是“o”?
如果你能做到的话:
string[] split = text.Split('h', 'o');
那为什么不也存储这些字符呢?
【讨论】: