Приветствую тебя, уважаемый пользователь. Благодарю за приобретение моего бесплатного приложения "СортировкаПоДлине".
С помощью данного приложения ты сможешь выбрать из текста все слова и элементы, которые по длине не превышают трех символов и получить их в виде массива, кроме запятых и точек. Пример: [Мы, с, и, и, и, с, по, и, для]
Далее я объясню тебе как работает данное приложение.
Текст, слова которого нужно отфильтровать присваиваем переменной "myString" в условиях приложения.
Далее в работу вступает метод "ConvertStringToArray". И как не трудно догадаться по названию, в этом методе происходит преобразование текста в массив поэлементно. Игнорируются пробелы, запятые, точки, табуляция и переходы строк, а также из результата выкидываются пустые элементы. на выходе мы получаем массив, состоящий только из слов. Ты увидишь этот массив в терминале под заголовком "original array".
Далее полученный массив отправляем в другой метод под названием "FilterText". Туда же отправляем заранее подготовленную числовую переменную "elementLength", содержащую информацию о максимальной длине искомых слов. Тут-то и происходит настоящая магия...
Наша задача проверить каждое слово на соответствие нужной длине. Длину мы знаем. Поэтому создаем цикл и проходим по каждому элементу полученного в предыдущем методе массива. При помощи выражения "text[i].Length" узнаем длину каждого очередного элемента, сравниваем ее с образцом. Если слово нам подходит, то вписываем его вместо первого элемента этого же массива. Следующее вместо следующего и так далее. Если слово превышает длину, то проверяем новое очередное.
За количество проходов цикла "for" по всей длине массива отвечает переменная "i". Она приращивается при каждом завершении цикла. За учет и порядок обновления ячеек массива отвечает переменная "count". Она приращивается при каждой успешной проверке на искомую длину очередного элемента. Таким образом в итоге все слова искомой длины будут скопированы в начало массива в том порядке, в котором они были в исходном тексте.
Нам останется в конце лишь произвести "Resize" массива (преобразование длины), а мы как раз знаем номер последнего скопированного элемента, он записан в переменную "count". Команда "Array.Resize(ref text, count)" в методе "FilterText" выполняет эту работу и остается только вывести обновленный массив при помощи метода "PrintArray" в терминал. Его ты увидишь под заголовком "filtered array".