Я видел много ответов о том, как обращаться с редактированием символов внутри строки с помощью C#.Проблема с удалением символов из строки
Однако мне нужен ответ, который учитывает только метод класса string remove (также, чтобы избежать использования строкового редактора).
Это только потому, что я вижу, что проблема с этим конкретным кодом, который, похоже, не избавляет от среднего пробела в телефонном номере. Код также удаляет любой другой символ, который не является числом.
Я до сих пор не смог понять, почему пробелы или два смежных пробела не будут удалены. Я подозреваю, что самозадача одной строки может быть проблемой, но я не уверен.
//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 (также, чтобы избежать использования построителя строк)». Вам ** нужно ** объяснить это требование. Это не имеет смысла для людей, которые могут вам помочь. – spender
OMG, если вы не собираетесь использовать преимущества библиотеки базового класса, почему вы вообще используете C# и .Net? сделайте свое программирование [с бабочками] (http://xkcd.com/378/). –
При удалении, как указано выше, вы изменяете значение индекса 'i'. Вам нужно приспособиться к этому. –