Я написал метод расширения для работы со строками. Я запутался, как мне назвать это - так как это станет частью базовой библиотеки, которую разработчики команды будут использовать. Вот профиль участника класса.
Информация: Метод расширения служебной программы для строковых типов. Перегрузки этого метода могут делать то же самое, что и символы, кроме пробела [с тем, что указано в аргументе]
Цель: Обрезает все промежуточные или промежуточные пробелы до одного пробела.
Ex:
string Input = "Hello Token1 Token2 Token3 World! ";
string Output = Input.TrimSpacesInBetween();
//Output will be: "Hello Token1 Token2 Token3 World!"
Я прочитал [на самом деле, я читаю] руководящие принципы разработки дизайна, но это, кажется, беспокоит меня.
Некоторые варианты, я думаю ..
TrimIntermediate();
TrimInbetween();
Вот код по запросу:
Это рекурсивно ..
public static class StringExtensions
{
public static string Collapse(this string str)
{
return str.Collapse(' ');
}
public static string Collapse(this string str, char delimeter)
{
char[] delimeterts = new char[1];
delimeterts[0] = delimeter;
str = str.Trim(delimeterts);
int indexOfFirstDelimeter = str.IndexOf(delimeter);
int indexTracker = indexOfFirstDelimeter + 1;
while (str[indexTracker] == delimeter)
indexTracker++;
str = str.Remove(indexOfFirstDelimeter + 1, indexTracker - indexOfFirstDelimeter - 1);
string prevStr = str.Substring(0, indexOfFirstDelimeter + 1);
string nextPart = str.Substring(indexOfFirstDelimeter + 1);
if (indexOfFirstDelimeter != -1)
nextPart = str.Substring(indexOfFirstDelimeter + 1).Collapse(delimeter);
string retStr = prevStr + nextPart;
return retStr;
}
}