@michadimin

Как поставить разделитель через заданное количество элементов в строке?

Имеется IP-адрес в двоичной форме - 11000000101010000000000000000001
Для лучшей читабельности нужно поставить точки через каждые 8 символов, кроме последнего, соответственно.

Никак не могу найти наиболее оптимальный способ это сделать...
Через циклы и условия - можно конечно, но не покидает чувство, что есть более оптимальный алгоритм.
  • Вопрос задан
  • 36 просмотров
Решения вопроса 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
var address ="11000000101010000000000000000001";
var result = String.Join(".",  Split(address, 8 ).ToArray());

static IEnumerable<string> Split(string str, int chunkSize)
{
    return Enumerable.Range(0, str.Length / chunkSize)
        .Select(i => str.Substring(i * chunkSize, chunkSize));
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Тоже поупражняюсь в Linq
var result = Enumerable.Range(0, address.Length / 8)
                .Aggregate(
                    new StringBuilder(address),
                    (acc, i) => acc.Insert((i + 1) * 8 + i, '.')
                ).ToString().TrimEnd('.');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы