ВУЗ:
Составители:
Рубрика:
57
Задача 13 (1 способ решения): Из файла удалить слова, в которых
содержится хотя бы одна буква предпоследней строки.
Размышления о ходе решения задачи.
1. Первые четыре шага аналогичны первым четырем шагам в задаче 12 (1
способ решения). Для работы с файлами воспользуемся функциями
File.ReadAllLines и File.WriteAllLines.
2. Для того, что бы обработать строку, надо найти последнюю
строку в
файле. Предположим, что мы ее нашли. Логично, что она должна
находиться только один раз. Поэтому вероятнее всего, что она будет
передаваться в качестве параметра в processString у StringWorker.
В остальном логика обработки строки почти аналогична рассмотренной
ранее обработке.
public void processString(string lastStr) {
…
}
3. Для того, что бы ответить на вопрос, надо удалять слово или нет,
необходимо знать последнюю строку. Пусть она будет передаваться в
параметрах в needDelWord. По логике, для ответа на вопрос, содержатся
ли в слове буквы предпоследней строки, надо просмотреть все буквы
слова, т. е. должен появиться цикл. Если во время выполнения
цикла мы
встретим букву предпоследней строки, то это будет означать, что слово
надо удалять и дальнейший просмотр не нужен. Сказать, что слово не
содержит букв предпоследней строки, мы можем только после прохода
по слову. В кодах материализация этих рассуждений будет выглядеть
следующим образом:
public bool needDelWord(string word, string lastStr) {
for (int i = 0; i < word.Length;i++ ) {
if (lastStr.Contains(word[i])) {
return true;
}
}
return false;
}
4. И приведем код всего класса, который ответственен за обработку
строки:
public class StringWorker {
public string str;
public bool needDelWord(string word, string lastStr) {
for (int i = 0; i < word.Length;i++ ) {
if (lastStr.Contains(word[i])) {
return true;
}
}
return false;
}
Страницы
- « первая
- ‹ предыдущая
- …
- 55
- 56
- 57
- 58
- 59
- …
- следующая ›
- последняя »