Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Optional;
- public class Practicum {
- public static Optional<String> find(String text, List<Optional<String>> maybeWords) {
- StringBuilder sb = new StringBuilder();
- int textIndex = 0;
- int maybeWordsIndex = 0;
- String[] words = text.split(" ");
- for (int i = 0; i < words.length; i++) {
- for (int k = 0; k < maybeWords.size(); k++) {
- if (!maybeWords.get(k).isEmpty() && maybeWords.get(k).get().equals(words[i])) {
- sb.append(maybeWords.get(k));
- textIndex = i;
- maybeWordsIndex = k;
- break;
- }
- }
- }
- for (int j = textIndex; j < words.length; j++) {
- for (int p = maybeWordsIndex; p < maybeWords.size(); p++) {
- if (maybeWords.get(p).isEmpty()) {
- continue;
- } else if (maybeWords.get(p).get().equals(words[j])) {
- sb.append(maybeWords.get(p).get());
- }
- }
- }
- return Optional.of(sb.toString());
- }
- public static void findInBooks(List<String> books, List<Optional<String>> maybeWords) {
- for (String text : books) {
- find(text, maybeWords).ifPresent(System.out::println); //вывести на экран, если нашлось
- }
- }
- public static void main(String[] args) {
- System.out.println(find(
- "фараон желает доброе утро доброе утро всем читающим эти строки",
- List.of(Optional.of("доброе"), Optional.empty(), Optional.of("всем")))
- ); // "доброе утро всем"
- System.out.println(find(
- "фараон желает доброе утро доброе утро всем читающим эти строки",
- List.of(Optional.of("доброе"), Optional.empty(), Optional.empty(), Optional.of("всем")))
- ); // empty
- System.out.println(find(
- "солнце печёт людей бабушка печёт пирожки печь греет дом",
- List.of(Optional.empty(), Optional.of("печёт"), Optional.of("пирожки")))
- ); // "бабушка печёт пирожки"
- System.out.println(find(
- "наскальная живопись может приглянуться всем особенно может всем запомниться",
- List.of(Optional.of("может"), Optional.of("всем"), Optional.empty()))
- ); // "может всем запомниться"
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment