我想问一下如何删除字符串中不存在的字符串中的所有字符。
我可以使用for循环来检查每个字符,但我需要一些性能更好的东西,因为应用程序必须处理多个(最多~200个)大文件。 1个字符串= 1个文件内容
答案 0 :(得分:3)
一种选择是使用LINQ:
var s1 = "hello world";
var s2 = "abcdefghijklmno";
var s3 = new String((from c1 in s1.ToCharArray()
join c2 in s2.ToCharArray() on c1 equals c2
select c1).ToArray());
Console.WriteLine(s3); // helloold
使用LINQ的优点是你可以stream the data不必将整个文件加载到内存中。
答案 1 :(得分:0)
另一种方法是使用正则表达式:
var s1 = "hello world";
var s2 = "abcdefghijklmno";
var s3 = Regex.Replace(s1, "[^" + s2 + "]", "");
Console.WriteLine(s3); // helloold
如果您想要所有字母字符,可以将s2
设置为"a-z"
或"A-Z"
或"a-zA-Z"
。