找到并替换未经授权的特定字符

时间:2015-03-23 10:25:47

标签: c#

我有一个允许的字符列表,我需要一个函数c#,我们可以检查文本是否包含不允许的字符,如果我们发现未授权的字符,我们用回车符替换\r或{{ 1}})。

例如:

\n

结果如下:

String ListCharactersAllowed = "¥ó;abcdefghijklmnopqrstuvwxyz123456789}{ ";
String input = @"thîs is @ string text";

1 个答案:

答案 0 :(得分:0)

您可以使用此LINQ方法:

var newCharacters = input.Select(c => ListCharactersAllowed.Contains(c) ? c : (char)13);
String result = String.Concat(newCharacters);

如果你不能使用StringBuilder方法使用LINQ,那就更有效了:

var newString = new StringBuilder(input.Length);
foreach (char c in input)
    newString.Append(ListCharactersAllowed.IndexOf(c) >= 0 ? c : (char)13);
String result = newString.ToString();

您可以使用ListCharactersAllowed.IndexOf(c) >= 0代替ListCharactersAllowed.Contains(c.ToString())来避免(不可用)Enumerable.Contains来电。前者更有效率。