替换所有不在数组中的字符
Replace all characters not in array
我想问一下如何删除字符串中不存在于字母表字符串中的所有字符。
我可以使用 for 循环来检查每个字符,但我需要性能更好的东西,因为应用程序必须处理多个(最多约 200 个)大文件。
1 个字符串 = 1 个文件内容
一种选择是使用 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不必将整个文件加载到内存中。
另一种方法是使用正则表达式:
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"
。
我想问一下如何删除字符串中不存在于字母表字符串中的所有字符。
我可以使用 for 循环来检查每个字符,但我需要性能更好的东西,因为应用程序必须处理多个(最多约 200 个)大文件。 1 个字符串 = 1 个文件内容
一种选择是使用 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不必将整个文件加载到内存中。
另一种方法是使用正则表达式:
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"
。