【发布时间】:2020-10-03 07:01:36
【问题描述】:
我只想计算字符串数组中的字母数字 - 没有空格、标点符号等。
我有这个笨拙的代码:
private int GetCountOfCharsInDoc(string[] _lines)
{
int iCountOfChars = 0;
string sLine;
foreach (string line in _lines)
{
sLine = line.Replace(" ", string.Empty);
sLine = line.Replace(".", string.Empty);
sLine = line.Replace("?", string.Empty);
sLine = line.Replace(",", string.Empty);
sLine = line.Replace(";", string.Empty);
sLine = line.Replace(":", string.Empty);
sLine = line.Replace("(", string.Empty);
sLine = line.Replace(")", string.Empty);
sLine = line.Replace("'", string.Empty);
sLine = line.Replace("\"", string.Empty);
iCountOfChars = iCountOfChars + sLine.Count();
}
return iCountOfChars;
}
仅计算字母数字的更好/更有效的方法是什么?
【问题讨论】:
-
仅供参考,您上面的代码甚至不会按照您期望的方式工作,因为只有替换引号的最后一行实际上在做任何事情。您“删除”的所有其他字符仍然存在,因为每个调用都使用原始的
line变量,而不是返回的变量sLine。要解决此问题,请将循环内出现的所有line更改为sLine,但第一个除外。
标签: c# .net counting alphanumeric