[RESOLVIDO] Problemas com Replace (strings x substrings)

5 respostas
H

Bom dia pessoal

Estou com um problema em utilizar replace.

Tenho uma frase: exemplo -> João, AB utiliza java.

cada vez que aparece o AB, faço um replace, onde AB -> aberto.
mudaSignificado = mudaSignificado.replace(“ab”, “aberto”);

ok, isso funciona.

o problema é que está pegando todo tipo de AB, por exemplo na frase:

João é abusado.

Quando roda, resultado: João é abertousado. ou semelhante a isso.

A dúvida:[color=red] [/color]
É possível utilizar o replace e dizer que só quero mudar a palavra só quando tiver exatamente uma palavra? (neste caso AB?)

ou preciso fazer uma função pra tratar isso?

Abraço.

5 Respostas

aeciovc

vc pode utilizar Expressões Regulares pra isso. Regex e etc…

lordtiago

ou gambiarra tipo "AB " com o espaço. Como normalmente as palavras que tem “ab” vem juntas de outras palavras e não de espaços, de repente funciona.

marcelo.bellissimo

Acho que isso resolve seu caso…

variavel_string.replaceAll("ab\W", "aberto")

Isso substitui qualquer coisa no formato “ab”+qualquer_coisa_que_não_seja_um_texto… :lol:

Mas só uma dúvida, por acaso seu código não está respeitando o case-sensitive? Você deve estar fazendo mais alguma coisa ai no meio… porque:

"abcde".replace("ab", "aberto") // = "abertocde" "abcde".replace("AB", "aberto") // = "abcde" pois não existe AB, maiusculo, na String

Cuidado com o case-sensitive… se for preciso, “normalize” a String antes de fazer um replace…

H

Obrigado a todos!

aeciovc -> regex aqui é um caso bem simples… resolveria mas também com a falta de prática ia me bater muito. (vou voltar a tentar mais tarde p/ aprender)

lordtiago -> a gambiarra resolve as vezes né? neste caso serviu muito bem! hehe

testei também o modelo do marcelo.bellissimo , também funciona caso alguém venha ler o tópico e precise da informação!
eu nesse caso já estava tratando e deixando todas as palavras minúsculas, por isso o problema! também precisava da função de deixar tudo minúsculo p/ uma outra função no programa!

abraço

marcelo.bellissimo

hugoramone:
Obrigado a todos!

aeciovc -> regex aqui é um caso bem simples… resolveria mas também com a falta de prática ia me bater muito. (vou voltar a tentar mais tarde p/ aprender)

lordtiago -> a gambiarra resolve as vezes né? neste caso serviu muito bem! hehe

testei também o modelo do marcelo.bellissimo , também funciona caso alguém venha ler o tópico e precise da informação!
eu nesse caso já estava tratando e deixando todas as palavras minúsculas, por isso o problema! também precisava da função de deixar tudo minúsculo p/ uma outra função no programa!

abraço

Ah, só pra constar, o que o meu método usa é um Regex, ok… “ab” + regex…

Criado 30 de agosto de 2010
Ultima resposta 30 de ago. de 2010
Respostas 5
Participantes 4