[RESOLVIDO] Problemas com Replace (strings x substrings)
5 respostas
H
hugoramone
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?)
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
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
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…