我试图通过多个分隔符来分割字符串。
我想把分隔符留在数组中..
Delimeters = ["'", "-", " ", "."];
例如:
input = Mr. Olive n-th indices - al al's k-2
output = ["Mr", ".", " ", "Olive", " ", "n", "-", "th", " ", "indices",
" ", "-", " ", "al", " ", "al", "'", "s", " ", "k", "-", "2"]
我知道类似的东西会在不保存分隔符的情况下拆分它:
String[] tokens = input.split("'|-|\\.| ");
任何帮助表示赞赏!
答案 0 :(得分:2)
String.Split
不支持。但是你可以编写一个简单的方法:
public static string[] SplitWithDelimiters(this string source, params char[] delimiters)
{
var temp = new List<char>();
var parts = new List<string>()
foreach(var c in source)
{
if(delimiters.Contains(c))
{
if(temp.Any())
{
parts.Add(new string(temp.ToArray()));
temp.Clear();
}
parts.Add(c.ToString());
}
else
{
temp.Add(c);
}
}
return parts.ToArray();
}