C# 如何确定String.Split()中使用的字符

C# 如何确定String.Split()中使用的字符,c#,.net,string,split,C#,.net,String,Split,如果使用的是.Split(),如何找出导致拆分的字符 string myMessage = "Apple|Car,Plane-Truck"; //Break apart string var splits = myMessage.Split(new Char [] {'|', ',', '-'}); foreach (string piece in splits) { } 我怎样才能确定哪个字符最终被用于拆分呢?在您给出的示例中,它将在所有字符上拆分。但一般来说,您只会看到字符串中包含哪些已

如果使用的是.Split(),如何找出导致拆分的字符

string myMessage = "Apple|Car,Plane-Truck";
//Break apart string
var splits = myMessage.Split(new Char [] {'|', ',', '-'});

foreach (string piece in splits)
{
}

我怎样才能确定哪个字符最终被用于拆分呢?

在您给出的示例中,它将在所有字符上拆分。但一般来说,您只会看到字符串中包含哪些已定义的拆分字符:

string myMessage = "Apple|Car,Plane-Truck";
//Break apart string
var splits = myMessage.Split(new Char [] {'|', ',', '-'});

foreach (string piece in splits)
{
}
var sourceString = "Apple|Car,Plane-Truck";
var allSplitChars = new[] {'|', ',', '-', '.', '!', '?'};

// Find only the characters that are contained in the source string
List<char> charsUsedToSplit = allSplitChars.Where(sourceString.Contains).ToList();
var sourceString=“苹果|汽车、飞机卡车”;
var allSplitChars=new[]{''|',','-','.','!','?'};
//仅查找源字符串中包含的字符
List charsUsedToSplit=allSplitChars.Where(sourceString.Contains.ToList();
string myMessage=“苹果|汽车、飞机卡车”;
//断开绳子
var splits=myMessage.Split(新字符[]{'|',','-'});
int累计长度=0;
foreach(分裂的弦乐片)
{
累计长度+=件长+1;

如果(累计长度列表中的任何字符都将用于拆分..您能否澄清您实际试图执行的操作?在您的示例中,拆分后的标记将是“苹果”、“汽车”、“飞机”、“卡车”,因此您的每个字符都将用于拆分

如果您试图确定哪个字符导致了每个令牌的拆分,那么您可能自己实现拆分并跟踪:

List<Tuple<String, Char>> Splitter(string msg, char[] chars) {
  var offset = 0;
  var splitChars = new HashSet<char>(chars); 
  var splits = new List<Tuple<String, Char>>();
  for(var idx = 0; idx < msg.Length; idx++) {
    if (splitChars.Contains(msg[idx])) {
      var split = Tuple.Create(msg.Substring(offset, idx - offset), msg[idx]);
      splits.Add(split);
      offset = idx + 1;
    } 
  }
  return splits;
}

string myMessage = "Apple|Car,Plane-Truck";
var splits = Splitter(myMessage, new [] {'|', ',', '-'});
foreach (string piece in splits)
{
    Console.WriteLine("word: {0}, split by: {1}", piece.Item1, piece.Item2);
}
列表拆分器(字符串消息,字符[]字符){
var偏移=0;
var splitChars=新哈希集(chars);
var splits=新列表();
对于(var idx=0;idx
通过回顾原始版本,您可以对所有这些内容进行拆分。