Problema com replaceAll() da classe String

2 respostas
R

Estou com o seguinte problema:

String str1 = “testsetexto”;
String str2 = “aaa$”;

str1 = str1.replaceAll(“texto”,str2);

por causa do $ na str2, da um problema no replaceAll
java.lang.IllegalArgumentException: Illegal group reference

alguma sugestão para eu arrumar isto?

2 Respostas

P
O argumento de String.replaceAll() pode ser uma expressao regular. $ eh um caractere reservado para expressao regulares, usado para se referir a grupos criados anterior mente na expressao (com parentes). Para evitar este problema, basta "escapar" o $ com uma barra invertida. Ou seja, tente
String str1 = "testsetexto";
String str2 = "aaa\$";

str1 = str1.replaceAll("texto", str2);
R

Segundo o compilador que estou usando aqui (j2sdk1.4.0_02), o caractere $ não é um caractere de escape válido.

Erro dado na compilacao:
Error Invalid escape sequence (valid ones are \b \t \n \f \r " ’ \ )

Criado 10 de outubro de 2003
Ultima resposta 18 de out. de 2003
Respostas 2
Participantes 2