Пока писал этот вопрос и еще раз перечитывал требования, наконец (практически случайно) понял чего от нас хотят. Но решил все-таки опубликовать его, возможно кому-то смогу помочь. Насколько я понимаю, ранее условие было другим, что-то вроде замены исходного текста, находящегося между 3-м и 4-ым слешем и большинство комментариев написано под это условие. Сейчас, как я вижу, условие скорректировано на: "Версия jdk начинается со строки "jdk" и заканчивается на "/"". Представил валидатору несколько решений и под первый вариант условия и под второй, но тем не менее, не мог добиться от него одобрения. При этом каждое решение дает искомый результат. Публикую свои работающие, но тем не менее не принимаемые решения. // Решение № 1: public static String changePath(String path, String jdk) { int one = path.indexOf("/"); int two = path.indexOf("/", one + 1); int three = path.indexOf("/", two + 1); int four = three+1; int five = path.lastIndexOf("/"); String jd = path.substring(four, five); path = path.replaceAll(jd, jdk); return path; } // Решение №2: public static String changePath(String path, String jdk) { int one = path.lastIndexOf("/"); int two = path.lastIndexOf("/", one-1); int three = two+1; String jd = path.substring(three, one); path = path.replaceAll(jd, jdk); return path; } // Решение №3 public static String changePath(String path, String jdk) { int one = path.indexOf("jdk"); int two = path.lastIndexOf("/"); String jd = path.substring(one, two); path = path.replaceAll(jd, jdk); return path; } Где же зарыта эта собака? А секрет в том, что, согласно условию, ("Версия jdk начинается со строки "jdk" и заканчивается на "/"") необходимо найти именно "jdk", а потом "/" и все это надо делать в следующем порядке: начало строки - слово "jdk" - от слова "jdk" символ "/". При этом символ "/" нельзя искать с конца, т.к. мы достоверно не знаем сколько может быть в конце символов "/", равно как и не знаем сколько их в начале. То есть нужно представить что Main нам не виден. Удачи всем.