[英]Split string with space and forward slash by forward slash
我不会用正斜杠分割字符串
我当前的代码如下所示:
string value = "Ctws Cwts/Rotc/Lts Ctws";
string[] tokens = value.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var token in tokens)
{
Console.Write(token);
}
输出是这样的: “ Cwts Cwts”,“ Rotc”,“ Lts Cwts”
现在我希望我的输出是这个: “ Cwts”,“ Rotc”,“ Lts”
编辑:
一些答案表明我将使用Distinct()
如果值是: “ Something1 Cwts / Rotc / Lts Something2”,该怎么办?
输出应相同: “ Cwts”,“ Rotc”,“ Lts”
只需使用Distinct
string[] tokens = value
.Split(new char[] { '/', ' ' }, StringSplitOptions.RemoveEmptyEntries)
.Distinct();
也不要忘记在分隔符中包含空格
根据您的编辑,如果要"Cwts", "Rotc", "Lts"
这些值,则可以执行以下操作:所有输入均使用"Cwts", "Rotc", "Lts"
var values = new List<string> { "Cwts", "Rotc", "Lts" };
string[] tokens = value
.Split(new char[] { '/', ' ' }, StringSplitOptions.RemoveEmptyEntries)
.Where(t => values.Contains(t))
.Distinct();
您可以使用多个字符来分割字符串。 您可以使用String.Split()函数的重载之一。 要删除重复的条目,可以使用Distinct()函数。
所以这是你的声明
string[] tokens = value.Split(new char[] { '/',' ' },
StringSplitOptions.RemoveEmptyEntries).Distinct().ToArray();
编辑 :在您编辑后,这个问题似乎让我不太想知道您想要实现的目标。 据我了解,您可以在包含/
和spaces
的单个字符串中找到要查找的字符串列表。
为此,您可以使用相交方法。
List<string> requiredValues = new List<string> { "Cwts", "Rotc", "Lts" };
var tokens = requiredValues.Intersect(value.Split(new char[] { '/', ' ' },
StringSplitOptions.RemoveEmptyEntries));
string value = "Ctws Cwts/Rotc/Lts Ctws";
var terms = new HashSet<String> { "Ctws", "Rotc", "Lts" };
var tokens =
from s in value.Split(new [] { ' ','/' },
StringSplitOptions.RemoveEmptyEntries)
group s by s into g
where terms.Contans(g.Key)
select g.Key;
这应注意拆分过滤和删除重复项。
与2个参数一起使用
var tokens = value
.Split(new char[] { '/', ' ' }, StringSplitOptions.RemoveEmptyEntries)
.Distinct();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.