Substituir letras de uma string a partir de uma substring sem usar implementacao da classe String

Ola

Estou fazendo um programa em java em que dada um interface com 3 variaveis, a primeira recebe uma sequencia de strings, a segunda tera as letras que serao retiradas e a terceira tera as letras que serao inseridas no lugar, seria algo assim:
string=“teste” (recebe a string informada)
velho=“tes” (as letras que serao retiradas)
novo= “ban” as novas letras que serao inseridas na string
o retorno sera= “bante”

Fiz o codigo e consegui tirar as letras mas nao estou conseguindo inserir as novas letras e concatenar a nova no lugar com o que restou na antiga, alguem poderia me ajudar ? segue o codigo.

public class SubstituiPalavras implements ISubstitui {

@Override
public String substituir(String string, String velho, String novo) {

	String result = "";

    for (int i = 0; i < string.length(); i++) { 
        boolean equals = true; 
        for (int j = 0; j < velho.length(); j++) {
            if (string.length() <= (i + j) || string.charAt(i + j) != velho.charAt(j)) {
                equals = false; // flag a false
                break;
            }
        }
        if (equals) { 
            i = i + velho.length() - 1;
        } else { 
            result =novo +  string.charAt(i);
        }	
    }

    return result;
  }

}

public class SubstituiPalavrasMain {

public static void main(String[] args) {
	
	
	ISubstitui mudar=new SubstituiPalavras();
	String alterar=mudar.substituir("teste", "tes","ban");
	System.out.println(alterar);
	
	
}

}

Conheço esse código de algum lado :wink:

Só tens de adicionar aqui. Se fez o match, para além de pular para a próxima letra, adiciona também a nova string ao resultado.

Ola
Voce conhece esse codigo sim pois foi vc que me ensinou ele em um exercicio semelhante heheheheeh, a diferença que nesse agora preciso pegar o que esta na variavel novo e concatenar junto a varialvel que foi tirada as letras, te confesso que nao entendi sua resposta pois do jeiro estou fazendo aqui esta saindo: bane (esta cortando uma letra, teria que sair bante)

if (equals) {
i = i + velho.length() - 1;
} else {

        	result = novo + string.charAt(i);
        }	
    }

    return result;
  }

}

Porque não é no else que tens de mexer mas sim no if.

O else é para os casos em que não faz match e aí queres manter o charater da string antiga.

No if (quando há match) é que vais querer pular os caracteres (como já era feito) e adicionalmente concatenar a nova string no teu resultado

       if (equals) { 
            i = i + substring.length() - 1; 
            result += novo; //apenas isto muda em relação ao outro exercício
        } else { 
            result += string.charAt(i); 
        }

Agora sim, entendi o que estava faltando, obrigado pela ajuda e vou continuar meus estudos em java por aqui ! valeu !!:wink: