Попытка решения через subString и indexOf. То что можно собрать просто пройдя по массивы понятно, но вот как через subString?
Если через try-catch
try {
String[] split = string.trim().split("\\s");
return string.substring(string.indexOf(" ") + 1,
(string.lastIndexOf(split[4]) + split[4].length()));
}
catch (StringIndexOutOfBoundsException e) {
throw new TooShortStringException();
}
package com.javarush.task.task22.task2202;
/*
Найти подстроку
*/
public class Solution {
public static void main(String[] args) {
System.out.println(getPartOfString("На некорректные данные бросить v"));
System.out.println(getPartOfString("Моя задача не работает, как требует условие"));
System.out.println(getPartOfString("Тесты для слабаков"));
System.out.println(getPartOfString("День числа пи — неофициальный праздник, который отмечается любителями математики 14 марта в 1:59:26 в честь математической константы — числа пи."));
System.out.println(getPartOfString("День был отмечен в 1988 году в научно-популярном музее Эксплораториум"));
}
public static String getPartOfString(String string) {
if (string == null) throw new TooShortStringException();
String[] split = string.trim().split("\\s");
if (split.length < 5) throw new TooShortStringException();
return string.substring(string.indexOf(" ") + 1,
(string.lastIndexOf(split[4]) + split[4].length()));
}
public static class TooShortStringException extends RuntimeException{
}
}