Como apagar letras dentro de uma string em java sem utilizar as implementacoes da classe String
6 respostas
L
luiz_juniorsp
Ola a todos !
Sou iniciante em java e estou estudando alguns execicios, e tenho um que consiste em apagar letras de uma palavra ou sequencia de palavras dentro de uma string.
Tenho uma interface que tem um metodo com duas variaveis string, uma recebe as palavras e outra recebe uma sequencia de de caracteres que terao que ser buscados na primeira string e serem removidas. Exemplo var1 recebe “teste” e a var2 recebe “tes” e entao sera removida na primeira e a var1 ficara apenas “te”.
Nao posso utilizar nenhum metodo da classe String, somente posso usar o charAt() e a concatenacao. Fiz alguns testes mas nao cheguei a nada pois ate consigo pegar os caracteres mas nao estou sabendo retirar na string. Segue os testes.
crie uma string para receber a nova palavra (crie antes do FOR)
verifique se a letra está contida (pode usar o método indexOf ) na segunda string (a que contém as letras que devem ser removidas)
No seu for, vc consegue pegar cada letra usando o método charAt:
charletra=string.charAt(i);
L
luiz_juniorsp
Olá
O problema que a única método que posso usar da classe string e o chatAt(), o indecifrável não poderia usar e preciso imprimir as palavras sem as letras da substring.
Lucas_Camara
Em relação à segunda string, o que deve ser removidos, são as letras que forem iguais? ou tem que tratar a string completa?
No exemplo q vc citou onde a primeira string é teste e a segunda é tes, o resultado deve ser te. Então o tes foi tratada de forma junta e não cada letra à parte para remover da primeira string, senão todas as letras seriam removidas.
Foi mal, achei meio confuso esse exercício agora.
pmlm1 like
Para quem está a inicial, isto será a forma como se poderá entender melhor
publicStringlimpar(Stringstring,Stringsubstring){
Stringresult=""; // começar com string vaziafor(inti=0; i < string.length(); i++) { // percorrer a string informadabooleanequals=true; // flag que indica se encontramos algum carater diferente.for(intj=0; j < substring.length(); j++) { // percorrer a substring a removerif(string.length()<=(i+j)||string.charAt(i+j)!=substring.charAt(j)){//seoscaracteresforemdiferentesequals=false; // flag a falsebreak; // se já encontramos um que não corresponde, podemos parar de percorrer o array}
}
if(equals){//Setodososcaractersdesubstringsãoiguaisàstringi=i+substring.length()-1; // saltamos esses carateres na string informada}else{//sesãodiferentesresult+=string.charAt(i); // adiciona o carater que estamos a percorrer ao resultado}
}
returnresult;}