Реализация на C#.
Повторение - это просто когда хотят склеить строки, но недавно их же и склеивали, тогда новый объект не создаётся, а выдаётся закэшированный ранее полученный ответ. Тоже самое относится и к разрезателю строк.
Пример:
Код:
string uri = Strings.Concat("Имя пользователя", "@", "домен").
Splitter.Result r = Splitter.Split(uri, '@');
if (r.Length == 2)
{
string user_name = r.Element0;
string user_domain = r.Element1;
}
Splitter.Result -- структура из 7 элементов (а нам больше и не надо) размещаемая на стеке, то есть в динамической памяти мусора не создаётся (создаются только строки, да и те кэшируются).