【发布时间】:2016-06-10 12:34:43
【问题描述】:
我对编程真的很陌生,我刚刚开始学习 C# 的一些基础知识。我只是尝试编写一个方法来检查字符串中是否不包含某些特殊字符。我的结果是这段代码:
static string GetUnused(string s)
{
/*
* Propably will get confused if s contains '#' char... how2fix?
*/
char[] signs = { '!', '§', '$', '%', '&', '/', '(', ')', '=', '?' };
foreach (char c in s)
{
if (c == '!') signs[0] = '#';
if (c == '§') signs[1] = '#';
if (c == '$') signs[2] = '#';
if (c == '%') signs[3] = '#';
if (c == '&') signs[4] = '#';
if (c == '/') signs[5] = '#';
if (c == '(') signs[6] = '#';
if (c == ')') signs[7] = '#';
if (c == '=') signs[8] = '#';
if (c == '?') signs[9] = '#';
}
string ret = string.Empty;
foreach (char x in signs)
{
if (x == '#') ret += "";
else ret += x;
}
return ret;
但我很确定这不是解决我的问题的好方法......我该如何以更优雅的方式解决这个问题? 感谢您的回答。
【问题讨论】:
-
你考虑过 String.Contains 方法吗? msdn.microsoft.com/en-us/library/dy85x1sa.aspx
-
也在最后一个foreach循环中:如果你把它改成'if(x != '#') ret += x;'那么你就不需要 else-path。
-
可以发给codereview.stackexchange.com 吗?