No caso essa listaHtmls é uma lista de htmls que foram transformadas em string e pelo console a string está igual ao html, teoricamente o replaceAll era alterar onde encontrasse a palavra traumatismo porém ele não altera. Segue o html abaixo:
Você tentou o que eu postei?
o método replaceAll não é uma void, é um método que devolve uma String, que é a String que você quer. Se você não atribuir essa nova String a nenhuma referência, ela ficará perdida.
erico_kl
E
entanglement
Uma forma fácil de entender a lógica de replace, replaceAll, trim, substring etc. não modificarem a string e sim retornarem uma string modificada é a seguinte:
String é uma classe cujos objetos são imutáveis.
Você pode modificar uma variável do tipo String, atribuindo uma nova String.
Mas não pode alterar uma instância de uma String.
Portanto, replaceAll, como não pode modificar a String, tem de retornar uma nova String modificada do jeito que você precisa.
pq ta fazendo isso no lado java?
pq nao faz com javascript ?!?!
C
claudiosg
ErickRAR:
Você tentou o que eu postei?
o método replaceAll não é uma void, é um método que devolve uma String, que é a String que você quer. Se você não atribuir essa nova String a nenhuma referência, ela ficará perdida.
Entendi, tentei duas coisas porém não funcionaram a primeira foi:
Em nenhum método e quando eu dou o printl ele continua vindo sem a modificação. E a segunda foi colocando ele em um método que retorna uma string que também não fez o replace.
Uma forma fácil de entender a lógica de replace, replaceAll, trim, substring etc. não modificarem a string e sim retornarem uma string modificada é a seguinte:
String é uma classe cujos objetos são imutáveis.
Você pode modificar uma variável do tipo String, atribuindo uma nova String.
Mas não pode alterar uma instância de uma String.
Portanto, replaceAll, como não pode modificar a String, tem de retornar uma nova String modificada do jeito que você precisa.
Consegui entender, no caso tive que atribuir uma String replace2 = replace.replaceAll("traumatismo", "TESTEEEEEEEEEE");
Agradeço ajuda de todos.
ErickRAR
HUAHUA Cara, era só copiar o código que postei na primeira vez e substituir pelo seu replaceAll. A sua solução funciona, mas você pode economizar umas linhas e tornar o código mais limpo.
privatevoidreplaceHtmls(intposition){Stringreplace=listaHtmls.get(position).replaceAll("traumatismo ","TEXTO");listaHtmls.add(position,replace);}//Ou em uma linha sóprivatevoidreplaceHtmls(intposition){listaHtmls.add(position,listaHtmls.get(position).replaceAll("traumatismo ","TEXTO"));}
Evite criar referências desnecessárias.
darkan666
claudiosg:
…
Consegui entender, no caso tive que atribuir uma String replace2 = replace.replaceAll("traumatismo", "TESTEEEEEEEEEE");
Agradeço ajuda de todos.
vc não precisa criar outra string brother… (só se vc quiser guardar o valor antigo pra uso posterior…)