C#中:删除常见的无效字符的字符串:改进算法 [英] C#: Removing common invalid characters from a string: improve this algorithm

查看:122
本文介绍了C#中:删除常见的无效字符的字符串:改进算法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

考虑要求从字符串中剥离无效字符。字符只需要删除并替换为空或的String.Empty

 的char [] BAD_CHARS =新的char [] {,'@','#','$','%','_'!'}; //简单的例子

的foreach(在BAD_CHARS字符坏)
{
    如果(someString.Contains(坏))
      someString = someString.Replace(bad.ToString(),的String.Empty);
}
 

我有真的很喜欢要做到这一点:

 如果(BAD_CHARS.Any(BC => someString.Contains(BC)))
    someString.Replace(公元前的String.Empty); // BC超出范围
 

问: 你有什么建议在重构这个algoritm,或者更简单,更易于阅读,高性能,可维护的算法?

解决方案

 的char [] BAD_CHARS =新的char [] {'!','@','#','$ ','%','_'}; //简单的例子
someString = string.Concat(someString.Split(BAD_CHARS,StringSplitOption.RemoveEmptyEntries));
 

应该做的伎俩(对不起,任何小的语法错误,我在我的手机)

Consider the requirement to strip invalid characters from a string. The characters just need to be removed and replace with blank or string.Empty.

char[] BAD_CHARS = new char[] { '!', '@', '#', '$', '%', '_' }; //simple example

foreach (char bad in BAD_CHARS)
{
    if (someString.Contains(bad))
      someString = someString.Replace(bad.ToString(), string.Empty);
}

I'd have really liked to do this:

if (BAD_CHARS.Any(bc => someString.Contains(bc)))
    someString.Replace(bc,string.Empty); // bc is out of scope

Question: Do you have any suggestions on refactoring this algoritm, or any simpler, easier to read, performant, maintainable algorithms?

解决方案

char[] BAD_CHARS = new char[] { '!', '@', '#', '$', '%', '_' }; //simple example
someString = string.Concat(someString.Split(BAD_CHARS,StringSplitOption.RemoveEmptyEntries));

should do the trick (sorry for any smaller syntax errors I'm on my phone)

这篇关于C#中:删除常见的无效字符的字符串:改进算法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆