Загрузить образ Java внутри пакета из класса в другой пакет

ReplaceAt (int index, int length, string replace)

Вот метод расширения, который не использует StringBuilder или Substring. Этот метод также позволяет заменяющей строке проходить за длину исходной строки.

//// str - the source string
//// index- the start location to replace at (0-based)
//// length - the number of characters to be removed before inserting
//// replace - the string that is replacing characters
public static string ReplaceAt(this string str, int index, int length, string replace)
{
    return str.Remove(index, Math.Min(length, str.Length - index))
            .Insert(index, replace);
}

При использовании этой функции, если вы хотите, чтобы вся строка замены заменяла как можно больше символов, установите длину к длине строки замены:

"0123456789".ReplaceAt(7, 5, "Hello") = "0123456Hello"

В противном случае вы можете указать количество символов, которые будут удалены:

"0123456789".ReplaceAt(2, 2, "Hello") = "01Hello456789"

Если вы укажете длину, равную 0 , то эта функция действует так же, как функция вставки:

"0123456789".ReplaceAt(4, 0, "Hello") = "0123Hello456789"

Я думаю, что это более эффективно, поскольку класс StringBuilder не нужно инициализировать и поскольку он использует более основные операции. Пожалуйста, поправьте меня, если я ошибаюсь. :)

14
задан CodeGuy 28 August 2012 в 06:06
поделиться