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 firstIndex = path.indexOf("jdk");//первый индекс
int lastIndex = path.indexOf("/", firstIndex);// второй индекс
String oldJdk = path.substring(firstIndex, lastIndex);//склеиваем
return path.replace(oldJdk, jdk);//возвращаем в String path замену oldJdk склеенную на jdk ВОПРОС почему jdk а не jdk13 как так то
Кирилл
1 уровень
откуда взялось jdk и где jdk13
Обсуждается
Комментарии (6)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
hidden #3303140
22 декабря 2024, 09:36
jdk13 - это имя переменной в методе main.
У метода changePath есть два параметра, path и jdk.
Когда ты вызываешь метод changePath, ты передаёшь туда аргументы вызова этого метода, это тот контекст, с которым метод будет работать. При вызове метода параметры инициализируются значениями аргументов:
Параметр path в методе changePath получает значение переменной path из метода main, параметр jdk в методе changePath получает значение переменной jdk13 из метода main.
При этом каждый метод может работать только со своими локальными переменными, которые были объявлены в этом методе. То есть метод main ничего не знает о переменных changePath и наоборот. Даже переменные path в обоих методах - это две разные переменные, которые просто называются одинаково. Имя переменных могло быть любым в каждом из методов.
0
ГоффMaster
21 декабря 2024, 01:07
Чисто на подумать - тут бывают задачи, которые легко решаются с помощью регулярных выражений. Это одна из них. Можно и без регулярок, вот как ты решил, с вычленением индексов, но с регексами проще.
0
Денис Enterprise Java Developer
20 декабря 2024, 19:08
Ничего не понял, но очень интересно.
0
Кирилл
20 декабря 2024, 19:10
return path.replace(oldJdk, jdk); почему вместо этого не льзя написать return path.replace(oldJdk, jdk13);
0
Кирилл
20 декабря 2024, 19:11
System.out.println(changePath());
0
Денис Enterprise Java Developer
20 декабря 2024, 19:48
Ну почему нельзя писать jdk13 думаю очевидно, он не всегда будет 13 именно поэтому у тебя в метод передаётся String jdk
А вот сделать так по идее можно:
Если правильно по индексам выбран oldJdk
0