Как работает данный код?

Класс, который будет добавлять пропущенные подразделения
"K1/SK1/SSK1"
"K1/SK1/SSK2"
В параметрах коллекция deps содержит строки String, разбиваем их поэлементно с помощью цикла String value : deps,
1. Но зачем дальше в коде используются пустые кавычки без пробелов строка String start = "";? Дальше мы сравниваем конечные элементы с пустым значением "", для чего?
2. Далее start += "/" + el;

Что это значит?

public static List<String> fillGaps(List<String> deps) {
        HashSet<String> tmp = new HashSet<>();
        for (String value : deps) {
            String start = "";
            for (String el : value.split("/")) {
                if (start.equals("")) {
                    start = el;
                } else {
                    start += "/" + el;
                }
                tmp.add(start);
            }
        }
        return new ArrayList<>(tmp);
    }
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Здравствуйте!
Для начала есть цикл for по которому он итерирует получая строки из переменной deps.
for (String value : deps) {
...
}


Далее каждую полученную переменную value при помощи метода split() делит на части и получает массив строк String[]
value.split("/")
Например, при разделении: "K1/SK1/SSK1" вы получите String[] values = new String[] {"K1", "SK1", "SSK1"};

Далее он итерирует по полученному массиву, который был получен при разделении строки на части.
for (String el : value.split("/")) {
...
}


Здесь, String start = ""; он инициализирует переменную, так как переменные внутри метода должны быть инициализированы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы