return sOutput;
Ключевой в этой демонстрационной программе является функция RemoveSpecial Chars ( ) . Она возвращает строку, которая представляет собой исходную строку, но с удаленными вхождениями всех символов, содержащихся в массиве cTargets. Чтобы лучше понять эту функцию, представьте, что ей передана строка " ab, cd, е", а массив специальных символов содержит единственный символ ' , 1.
Функция RemoveSpecialChars () начинается с входа в цикл, выход из которого произойдет только тогда, когда в строке не останется ни одной запятой. Функция 1п- dexOf Any () возвращает позицию первой найденной запятой (значение -1 указывает, то ни одна запятая не найдена).
После первого вызова IndexOf An y () возвращает 2 (позиция 1 а1 равна 0, позиция b1 — 1, а позиция ' , ' — 2). Два следующих вызова функции разбивают строку на две подстроки в указанном месте. Вызов Substring (0, 2) создает подстроку, содержа щую два символа, начиная с символа в позиции 0, т.е. "ab". Второй вызов Substring (3) создает подстроку из символов с позиции 3 исходной строки и до ее юнца, т.е. "cd,e" (+1 в вызове позволяет пропустить найденную запятую). Затем функция Concat () объединяет эти подстроки вместе, создавая строку " abed, е".
Управление выполнением передается после этого в начало цикла. Очередная итераднл находит запятую в позиции 4, так что в результате получается строка " abede " . По скольку в ней нет ни одной запятой, возвращаемая при последнем проходе позиция рав- иа-1.
Демонстрационная программа сначала выводит строку, содержащую пробельные сиволы, затем использует функцию RemoveSpecialChar s () для их удаления и вы водит получившуюся в результате строку:
|о: this is а Wring
После :thisisastring
Зажмите <Enter> для завершения программы ...
Использование ф у н к ц и и SplitQ
В программе RemoveWhiteSpac e было продемонстрировано применение методов Concat () и IndexOf ( ) ; однако использованный способ решения поставленной задачи не самый эффективный. Стоит только немного поду мать, и можно получить существенно более эффективную функцию с ис пользованием уже знакомой функции Split О. Соответствующая про грамма имеется на прилагаемом компакт-диске в каталоге Remove - WhiteSpaceWithSplit. Вот код функции RemoveSpecialChar s () из этой программы.
//RemoveSpecialChars - удаляет из строки все указанные
//символы
rablic static string RemoveSpecialChar s (string slnput, char[] cTargets)