Ответ в консоли выглядит так: /usr/java/jdk-13/bin
В условии задачи оговорен символ, строго "/", поэтому вариант с "\" на рассматривал. На более глубокие и более мелкие пути код реагирует правильно. На иную версию jdk в исходной строке код тоже реагирует правильно. Чего я не замечаю?
package com.javarush.task.pro.task09.task0914;
/*
Обновление пути
*/
public class Solution {
public static void main(String[] args) {
String path = "/usr/java//jdk1.8/bin";
String jdk13 = "jdk-13";
System.out.println(changePath(path, jdk13));
}
public static String changePath(String path, String jdk) {
//напишите тут ваш код
int index = path.indexOf("jdk");
int indexOfSlash = path.indexOf("/", index);
String target = path.substring(index, indexOfSlash);
path = path.replace(target, jdk);
return path;
}
}
jdk, а строку начинающуюся после 3-го по счету/и заканчивающуюся перед 4-ым по счету/. Т.е. относительная позиция версии в строке жестко определена и она не обязательно должна начинаться с jdk Т.е. для вашего примера:/usr/java//jdk1.8/binвместе сjdk-13ожидаемым ответом должно быть:/usr/java/jdk-13/jdk1.8/binА для таких:/usr/java/jdk1.8/binиjdk-13ответом должно быть:/usr/java/jdk-13/bin