_ums_

FindPhrase

Apr 30th, 2022
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.77 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.Optional;
  4.  
  5. public class Practicum {
  6.  
  7.     public static Optional<String> find(String text, List<Optional<String>> maybeWords) {
  8.         StringBuilder sb = new StringBuilder();
  9.         int textIndex = 0;
  10.         int maybeWordsIndex = 0;
  11.         String[] words = text.split(" ");
  12.         for (int i = 0; i < words.length; i++) {
  13.             for (int k = 0; k < maybeWords.size(); k++) {
  14.                 if (!maybeWords.get(k).isEmpty() && maybeWords.get(k).get().equals(words[i])) {
  15.                     sb.append(maybeWords.get(k));
  16.                     textIndex = i;
  17.                     maybeWordsIndex = k;
  18.                     break;
  19.                 }
  20.             }
  21.         }
  22.         for (int j = textIndex; j < words.length; j++) {
  23.             for (int p = maybeWordsIndex; p < maybeWords.size(); p++) {
  24.                 if (maybeWords.get(p).isEmpty()) {
  25.                     continue;
  26.                 } else if (maybeWords.get(p).get().equals(words[j])) {
  27.                     sb.append(maybeWords.get(p).get());
  28.                 }
  29.             }
  30.         }
  31.         return Optional.of(sb.toString());
  32.     }
  33.  
  34.     public static void findInBooks(List<String> books, List<Optional<String>> maybeWords) {
  35.         for (String text : books) {
  36.             find(text, maybeWords).ifPresent(System.out::println); //вывести на экран, если нашлось
  37.         }
  38.     }
  39.  
  40.     public static void main(String[] args) {
  41.         System.out.println(find(
  42.                 "фараон желает доброе утро доброе утро всем читающим эти строки",
  43.                 List.of(Optional.of("доброе"), Optional.empty(), Optional.of("всем")))
  44.         ); // "доброе утро всем"
  45.  
  46.         System.out.println(find(
  47.                 "фараон желает доброе утро доброе утро всем читающим эти строки",
  48.                 List.of(Optional.of("доброе"), Optional.empty(), Optional.empty(), Optional.of("всем")))
  49.         ); // empty
  50.  
  51.         System.out.println(find(
  52.                 "солнце печёт людей бабушка печёт пирожки печь греет дом",
  53.                 List.of(Optional.empty(), Optional.of("печёт"), Optional.of("пирожки")))
  54.         ); // "бабушка печёт пирожки"
  55.  
  56.         System.out.println(find(
  57.                 "наскальная живопись может приглянуться всем особенно может всем запомниться",
  58.                 List.of(Optional.of("может"), Optional.of("всем"), Optional.empty()))
  59.         ); // "может всем запомниться"
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment