Почему неправильный вывод?

Подскажите пожалуйста в чем ошибка у меня выводит

Herlo world

public class Main {
    
    public static void main(String[] args) {
    
        String str=new String("Herlo world");
         
        str.replace('r','l').trim().contains("Aa");
        str.substring(0,2);
          
        System.out.println(str);
    
    }
}

Ответы (1 шт):

Автор решения: Сабир Исламов

String.substring возвращает измененную строку (на самом деле возвращает объект который ссылается на нужный кусок строки, так как строки в java неизменяемые), по этому нужно что-то вроде этого писать:

public class Main {

    public static void main(String[] args) {

        String str=new String("Herlo world");

        String ret = str.replace('r','l').trim();//.contains("Aa");
        ret = str.substring(0,2);

        System.out.println(ret);
    }
}

При этом проверку на наличие символов нужно ставить в блоке ветвления, так как по сути в этом тексте она не играет ни какой роли, а вот субстринг можно присоединить к существующей цепочке изменения строки.

→ Ссылка