如何在c#中过滤掉用户输入字符串中的字符?

时间:2017-07-25 15:07:25

标签: c# trim

如何从输入字符串中过滤掉特定字符? 请看下面我的尝试方式。

    using System;

    namespace PlainTest
    {
        class arrayTest
        {
            static void Main(string[] args)
            {
                bool doAlways = true;
                int i = 1;
                do
                {
                    Console.WriteLine("Test Number : {0}", i++);
                    Console.Write("Key in the string: ");
                    char[] alpha = { 'a', 'b', 'c' };
                    string text = Console.ReadLine();
                    string filterAlphabet = text.Trim(alpha);
                    Console.WriteLine("The input is : {0}", text);
                    Console.WriteLine("Ater trimed the alpha a,b,c : {0}", filterAlphabet);


                } while (doAlways == true);
            }
        }
    }

但是当我尝试在数字之间修剪角色时。过滤器不起作用。请参阅下文,了解不同输入的输出。

Test Number : 1
Key in the string: 123abc
The input is : 123abc
Ater trimed the alpha a,b,c : 123

Test Number : 2
Key in the string: abc123
The input is : abc123
Ater trimed the alpha a,b,c : 123

**Test Number : 3
Key in the string: aa1bb2cc3
The input is : aa1bb2cc3
Ater trimed the alpha a,b,c : 1bb2cc3**

Test Number : 4
Key in the string: aaabbbccc123
The input is : aaabbbccc123
Ater trimed the alpha a,b,c : 123

Test Number : 5
Key in the string: a12bc
The input is : a12bc
Ater trimed the alpha a,b,c : 12

Test Number : 6
Key in the string: 

请告诉我。 感谢。

3 个答案:

答案 0 :(得分:2)

您可以遍历字符串以查找要删除的字符,而不是使用trim,而是用空字符串替换它们:

var alpha = new string[] { "a", "b", "c" };
foreach (var c in alpha)
{
    text = text.Replace(c, string.Empty);
}

答案 1 :(得分:0)

Trim(char [])仅删除前导或尾随字符,与Trim()删除前导/尾随空格的方式相同。一旦Trim命中一个不在数组中的字符,它就会停止(从前面和后面都工作)。要从任何地方删除所需的字符,您需要使用替换或正则表达式。

答案 2 :(得分:0)

您可以使用Regex。

而不是

string filterAlphabet = text.Trim(alpha);

使用正则表达式替换a,b,c

string filterAlphabet = Regex.Replace(text,"[abc]",string.Empty);