Erik_Mironov
@Erik_Mironov
Старые вопросы: *Dies from cringe*

Что конкретно делает данная строка в коде?

Данный метод, судя по всему, сортирует массив строк по номеру слова в отдельно взятой строке.
public static void argumentSort(ArrayList<String> arr, int sortNumber) {
        while (true) {
            int j = 0;
            for (int i = 0; i < arr.size() - 1; i++) {
                String[] str1 = arr.get(i).split(" ");
                String[] str2 = arr.get(i + 1).split(" ");
                String st1 = arr.get(i);
                String st2 = arr.get(i + 1);

                char a = str1[sortNumber - 1].charAt(0);
                char b = str2[sortNumber - 1].charAt(0);
                if (a > b) {
                    arr.set(i + 1, st1);
                    arr.set(i, st2);
                    j++;
                }
            }
            if (j == 0) break;
        }
    }

Мне не совсем понятно, что конкретно делает строка:
char a = str1[sortNumber - 1].charAt(0);
Заранее благодарю за объяснение и прошу прощение за очень глупый вопрос
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
Therapyx
@Therapyx
Data Science
Смотри str это массив типа String, т.е. к примеру индекс 0 - строка (маша), индекс 1 - строка (петя), индекс 2 строка (вася).

когда к массиву обращаются по индексу str[1] - это петя. str[2] - это вася, str[0] - это маша. Т.е. то, что в квадратных скобках - это номер позиции в этом массиве (начинается с нуля).

Т.е. получаем str1[sortNumber - 1] это тоже самое, что и str[1] или 2 или 3, только в скобках идет вычисление этого номерa.
sortNumber имеет в том контексте свой номер и минус 1 = число, которое станет в квадратные скобки.
Идем дальше. После этих вычислений на эту строку добавляется функция, т.е. к примеру имеем массив str1 на позиции "х", где находятся маша, вася или петя применяется функция .charAt(0).
Идем в гугл и смотрим, что такое .charAt - получаем "charAt(int index) method returns the character at the specified index in a string"
Т.е. charAt возвращает "букву", не слово, a char на определенном индексе строки. charAt(0) - нулевая позиция в строке.
Если конкретно взять пример с васей(0), машей(1), петей(2), то
str1[2].charAt(0) - это первая буква от пети, тоесть "п".

Обьяснял как можно проще, не кидайте тапками :D
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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