【问题标题】:How to I replace all chars and numbers in string except several chars如何替换字符串中的所有字符和数字,除了几个字符
【发布时间】:2017-01-19 11:36:59
【问题描述】:

如何替换字符串中的所有字符和数字,除了几个字符,例如“f”、“a”、“l”,以避免这样的事情:

String str = "replace different characters except several";
Console.WriteLine("Input: " + str);
str = str.Replace('a', '.').Replace('b', '.').Replace('c', '.');
Console.WriteLine("Output: " + str);

【问题讨论】:

    标签: c# string replace char


    【解决方案1】:

    一种方法是使用Linq 并替换除排除列表中的字符之外的所有字符。

    char[] excluded = new char[] {'f', 'a', 'l'};       
    var output = new string(str.Select(x=> excluded.Contains(x)? x:'.').ToArray());
    

    查看demo

    【讨论】:

    • 给定代码和演示代码不同!更改演示代码也哥们:)
    • 有什么区别?是一样的。
    • 在演示中 .Dump();有没有。请检查一下。
    • 对就是输出到console,这里不需要。
    • 不过不错!
    【解决方案2】:

    在这些场景中使用Regex

    String str = "replace different characters except several";
    str = Regex.Replace(str, @"[^fal]", "."); //Replace all with "." EXCEPT f,a,l
    Console.WriteLine(str);
    

    输出:-“...la.....ff........a.a........al”

    【讨论】:

    • 创建这个@"[^fal]" 作为一个意思完整的话。示例字符串 pattern="@"[^fal]"";
    • @JerryGoyal 这也是一个很好的答案,效果很好,但就我而言,最好使用下面的列表
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    相关资源
    最近更新 更多