Считаю что условие в задаче поставлено не совсем удачно. Некоторые (как и я сперва) начинают искать версию jdk в строке path и заменяют её на новую. А как оказалось, надо заменить в строке path то, что находится между 3-им и 4-ым символами "/" (чтоб там не находилось) на jdk. вот ниже пример: public static String changePath(String path, String jdk) { // Замена версии jdk //int index = path.indexOf("jdk"); //int index2 = path.indexOf("/", index+1); //String first = path.substring(0, index); //String second = path.substring(index2); // Замена строки между 3-им и 4-ым "/" int index1 = path.indexOf("/"); int index2 = path.indexOf("/", index1+1); int index3 = path.indexOf("/", index2+1); int index4 = path.indexOf("/", index3+1); String first = path.substring(0, index3+1); String second = path.substring(index4); String result = first + jdk + second; return result; } 1-й вариант валидатор не принял. 2-й вариант принял. Однако если использовать, к примеру, строчку: "/usr/java/bingo_bongo/jdk1.8/bin" то 1-й вариант найдет "jdk1.8" и заменит его, а 2-й заменит "bingo_bongo" на новый jdk. Итог: по условию задачи надо в строке не "jdk1.8" заменить, а содержимое между 3-м и 4-м "/".