Найти подстроку

  • 12
  • Недоступна
Метод getPartOfString должен возвращать подстроку начиная с символа после 1-го пробела и до конца слова, которое следует после 4-го пробела. Пример: "JavaRush - лучший сервис обучения Java." Результат: "- лучший сервис обучения" На некорректные данные бросить исключение TooShortStringException (сдел
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (122)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
NewBuy23 уровень, Санкт-Петербург
вторник, 04:42
null-а то я и не заметил...
Lein32 уровень, Москва
22 апреля, 07:37
6 попыток,из-за того, что исключения надо ловить в одну строчку, а не расписывать вариации(хотя все и так работало)
NewBuy23 уровень, Санкт-Петербург
вторник, 04:42
RuntimeException можно вообще не ловить...
Petrusiova30 уровень
19 апреля, 22:57
10 строк кода не самый короткий вариант, но вполне имеет место быть: - сплитила строку по пробелам и заносила в стринговый массив - в цикле склеивала stringbuilder-ом с 1 по 4 включительно (не забываем пробелы и .trim() в конце) - этот цикл оборачивала в try/catch и в catch пробрасывала нужное исключение - возвращала нужную строку ВНЕ цикла try/catch
Aleksei Dobrovolskii23 уровень
8 апреля, 23:30
Какая-то подозрительно простая задача. И от этого странно. Git
Александр23 уровень
12 апреля, 11:21
А что эта конструкция означает? string.split(" ")[i]
Aleksei Dobrovolskii23 уровень
22 апреля, 01:46
i-тая часть разделённой по пробелам строки. (он же i-тый элемент массива подстрок)
Роман23 уровень
25 марта, 04:35
Нет смысла городить массивы и считать пробелы. достаточны знания об: indexOf для нахождения индекса и substring для вырезания нужной строки по индексам начала и конца. P.S.: Не забываем бросать наше исключение если прибывшая строка пуста и также если в цикле для поиска следующего пробела не найден пробел.
Tony G25 уровень, Самара
4 июня, 14:20
Роман, не подскажете, как найти индекс конца нужной подстроки?
Vadim Krant26 уровень, Москва
23 марта, 21:54
Задача попроще предыдущей и если отбросить своё самолюбие и сделать в лоб, решается за 5 минут. Сперва собрал конструкцию на indexof (не ну мы же это в предыдущих лекциях делали) в итоге завернул меня валидатор на каком-то одном из пунктов, у меня и так подгорает от этого блока задач ( я их собираюсь решить уже наверно месяц и всё никак), плюнул, за 5 минут накатал код который в лоб перебрасывает строку в массив, а потом массив я уже перетряхиваю на наличие нужных пробелов (их количества конечно же). Нашёл точку входа в массив и точку выхода, в конце сабстринг по двум переменным которые обновляются в коде поисковика. Если точку выхода не нашли (не насчитали нужное число пробелов, то ей просто не присваиваем значение), кидаем эксепшн из соседнего класса (throw new). Без трай кэтч, 10 строк кода, 10 / 10 спасёных стульев валидатора.
Максим28 уровень
9 марта, 22:40
Все заворачиваем try, в catch при любом RuntimeException выбрасываем TooShortStringException. Внутри try replaceAll удаляем все пробелы. Из длины исходной строки вычитаем длину строки с удаленными пробелами, если меньше 4 кидаем TooShortStringException. if ((string.length()-string.replaceAll(" ","" ).length()<4)) throw new TooShortStringException(); Далее находим индекс первого пробела, после циклом обновляем позицию while (--i >0) { pos=string.indexOf(" ",pos+1) } ..... Внимательно следим за пробелами в начале и конце выводимых строк!
Antony.Glim31 уровень, Санкт-Петербург
9 марта, 17:43
Решил через сплит
Вадим35 уровень, Новосибирск
1 марта, 14:44
Решил задание через Matcher. Валидатор не принимал решение, потому что исключение нужно пробрасывать через блок try catch.
Костя25 уровень, Москва
4 марта, 12:25
я не использовал блок try catch
Antony.Glim31 уровень, Санкт-Петербург
9 марта, 17:42
Так-же не использовал
Boris28 уровень
15 марта, 17:59
делал через матчер и ничего не просило!
S3R3N1TY34 уровень, Санкт-Петербург
25 февраля, 12:55
Как то забыл совсем про метод  isSpaceChar и решал через массив
массив = string.split("\\s");
       Если длинна массива<5 throw new TooShortStringException();
       Вернуть строку string.substring(string.indexOf(" ")+1,string.indexOf(arr[4])+arr[4].length());
Если строка null нужно обрабатывать nullpointerException и в нем кидать наше.
Voyager30 уровень, Киев
26 февраля, 12:55
Если слова будут одинаковые такое решение не прокатит. Но валидатор схавал. Твое решение гораздо компактнее моего.
Boris28 уровень
15 марта, 18:02
причём тут одинаковость слов????
Voyager30 уровень, Киев
18 марта, 08:06
Хз, наверное ошибся задачей в которую коммент оставил)