【发布时间】:2014-03-20 03:28:24
【问题描述】:
我已经看到很多关于如何使用 c# 处理字符串中的编辑字符的答案。
但是,我需要一个只考虑使用字符串类方法 remove 的回复(也是为了避免使用 stringbuilder)。
这只是为了让我可以看到这个特定代码的问题所在,它似乎没有消除电话号码中的中间空格。该代码还会删除任何其他不是数字的字符。
到目前为止,我一直无法理解为什么不会删除空格或两个相邻的空格。我怀疑对同一字符串的自分配可能是一个问题,但我不确定。
//leave only the digits
for (int i = 0; i < enteredPhone.Length; i++)
{
switch (enteredPhone[i])
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
break;
default:
//gets rid of any other type of character
enterPhone = enteredPhone.Remove(i, 1);
break;
}
}
提前致谢。
【问题讨论】:
-
“但是,我需要一个只考虑使用字符串类方法 remove 的回复(也避免使用 stringbuilder)。”您需要解释此要求。对于可能会帮助你的人来说,这没有意义。
-
天啊,如果你不打算使用基类库提供的优势,你为什么要使用 C# 和 .Net?继续编程with butterflies。
-
当您像上面一样删除时,您会更改索引
i值。你需要为此做出调整。 -
这可能是一个有用的练习,可以通过不断变化的项目数迭代容器