Задать вопрос
@Ille
Новичок

Почему объект java считывается справа налево?

Подскажите, Пож-ста, почему в коде:
String hhh = new String("qwe");

        String t = "";
        for (int i = 0; i <hhh.length() ; i++) {
            t = hhh.charAt(i) + t;
        }
        System.out.println(t);

        String st = "qwe";
        for (int i = 0; i < st.length(); i++) {
            // Классический способ итерации символов строки.
            System.out.print(st.charAt(i) );

        }


В первом случае qwe выводится в обратном порядке.
А во втором - в прямом.
Помню , где то было, что в определённых случаях объект String читается справа налево, но не могу нагулить
  • Вопрос задан
  • 206 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
Ну достаточно просто подебажить.
Исходная строка qwe
Первая итерация: t будет равно q
Вторая итерация (буква w): t = w +q - т.е. wq
Третья (буква е): t = e + wq - т.е. ewq

У вас код так написан чтобы переворачивать строку. Хотите без реверса - поменяйте местами складываемые строки тут:
t = hhh.charAt(i) + t;
Ответ написан
Комментировать
mayton2019
@mayton2019 Куратор тега Java
Bigdata Engineer
Обычно для конкатенации строк используют не сложение а специальный билдер.

Вместо
String hhh = new String("qwe");

пишут
StringBuilder sb = new StringBuilder("qwe");

Операция сложения для строк вообще введена неправильно во многих языках.
Сложение - коммутативно. Но для строк это правило не работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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