Обработка строк в массиве

Обработка строк в массиве


Суть моего вопроса в том, что после парсинга страницы и некоторой обработки у меня имеется массив строк, который выглядит примерно так (каждый переход на новую строку => другой элемент массива):

"prop1: foo1"
"prop2:"
"foo2"
"foo2"
"prop3: foo3"

И мне нужно сделать так, чтобы всё имело такой вид: "prop: foo". Задачу осложняет то, что мы не можем предугадать сколько строк нам нужно объединить для каждого свойства. Их может быть и 3, может и не быть вовсе.

И у меня в голове есть некая идея: если строка оканчивается на ':', то присоединяем к ней все последующие строки, но до тех пор пока не встретим строку, содержащую ':'.

  1. Как я понимаю тут необходимо 2 вложенных цикла, где 1 - будем обходить массив до тех пор, пока не встретит строку, оканчивающуюся на ':', а 2 - который будет обходить все элементы после, но до тех пор, пока не наткнётся на строку с ':'?
  2. И я правильно понимаю, что логичнее будет заменять ненужные нам элементы (уже конкатенированные) на string.Empty, чтобы впоследствии легко отсеять их?

Просто в данный момент что-то толковое в голову не идёт




Достаточно одного цикла. Обрабатываете строки по очереди. Если в строке содержится ":" - запоминаете её индекс lastprop. Если в i-й строке снова встретили ":" - объединяете строки от lastprop до i-1, записываете lastprop = i. Аналогично после цикла.


Report Page