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

  • 12
  • Недоступна
Метод getPartOfString должен возвращать подстроку начиная с символа после 1-го пробела и до конца слова, которое следует после 4-го пробела. Пример: "JavaRush - лучший сервис обучения Java." Результат: "- лучший сервис обучения"
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (129)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Павел25 уровень, Минск
31 июля, 13:55
понравилось, решил с 3ей попытки, но сам Вы решили задачу лучше, чем 55% учеников. Вам удалось ее решить с 3 попытки. Среднее количество попыток для этой задачи 5.37. Всего эту задачу решили 7897 учеников.
Anton Rymarenko25 уровень
29 июля, 15:33
странная задача , я разбил на char , вычел две переменных begin end и сделал substring , валидатор не пропустил .пришлось делать сплит ((но мы же про сабстринг говорили в прошлой лекции и как разбить строку на символы .Очень интересно и не нужно получилось.Надеюсь дальше пригодится .
Николай28 уровень
9 июля, 10:02
Неплохая задачка на логику, но что смутило, так это вот этот кусок задания - " ... и до конца слова, которое следует после 4-го пробела." Ведь по логике мы НЕ должны учитывать символы, но в примере показана только проверка на пробелы и символы должны попадать в результат. Так и оказалось, что либо до конца строки, либо до 5 пробела. Никакой проверки на null не делал, т.к. сам код просто в блоке try выкинет эксепшн.
NewBuy25 уровень, Санкт-Петербург
11 июня, 04:42
null-а то я и не заметил...
Dmitry Potamoshnev30 уровень, Москва
7 июля, 19:01
Вот и мне интересно, что за ботаники с первой попытки учли проверку на null :) С другой стороны условие вполне себе однозначно даёт понять, что это нужно учесть: "В случае, если в метод getPartOfString были переданы некорректные данные, должно возникнуть исключение TooShortStringException."
Александр27 уровень, Санкт-Петербург
8 июля, 13:52
Нам просто в голову вбивают простой факт: Сделай проверку на null сразу, а не в хотфиксе через два дня после релиза)
Lein35 уровень, Москва
22 апреля, 07:37
6 попыток,из-за того, что исключения надо ловить в одну строчку, а не расписывать вариации(хотя все и так работало)
NewBuy25 уровень, Санкт-Петербург
11 июня, 04:42
RuntimeException можно вообще не ловить...
Petrusiova30 уровень
19 апреля, 22:57
10 строк кода не самый короткий вариант, но вполне имеет место быть: - сплитила строку по пробелам и заносила в стринговый массив - в цикле склеивала stringbuilder-ом с 1 по 4 включительно (не забываем пробелы и .trim() в конце) - этот цикл оборачивала в try/catch и в catch пробрасывала нужное исключение - возвращала нужную строку ВНЕ цикла try/catch
Павел25 уровень, Минск
31 июля, 13:53
интересное решение, не вспомнил, что так тоже можно, хотя в прошлых задачах сплитил. Сам решил через ArrayList(заносил туда значения индексы пробелов и возвращал сабстрингой с параметрами ArrayList'a)
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 G30 уровень, Самара
4 июня, 14:20
Роман, не подскажете, как найти индекс конца нужной подстроки?
Vladimir Tischenko23 уровень
6 июля, 16:09
Роман, массивы символов и счетчики пробелов потребляют куда меньше памяти, чем несколько последовательных вызовов сабстринга в цикле. Это если мы говорим о джаве 7+. В джаве 6 и ниже разница уже не так значительна
Vadim Krant26 уровень, Москва
23 марта, 21:54
Задача попроще предыдущей и если отбросить своё самолюбие и сделать в лоб, решается за 5 минут. Сперва собрал конструкцию на indexof (не ну мы же это в предыдущих лекциях делали) в итоге завернул меня валидатор на каком-то одном из пунктов, у меня и так подгорает от этого блока задач ( я их собираюсь решить уже наверно месяц и всё никак), плюнул, за 5 минут накатал код который в лоб перебрасывает строку в массив, а потом массив я уже перетряхиваю на наличие нужных пробелов (их количества конечно же). Нашёл точку входа в массив и точку выхода, в конце сабстринг по двум переменным которые обновляются в коде поисковика. Если точку выхода не нашли (не насчитали нужное число пробелов, то ей просто не присваиваем значение), кидаем эксепшн из соседнего класса (throw new). Без трай кэтч, 10 строк кода, 10 / 10 спасёных стульев валидатора.
Максим30 уровень
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) } ..... Внимательно следим за пробелами в начале и конце выводимых строк!