Galera, estou enfrentando um problema com o caractere “(” (parênteses). O negócio é o seguinte. Tenho isso:
frase = frase.replaceAll( "(", "4da65s4d6");
Quando eu tento executar o código acima, ele da erro. Basta eu tirar o “(” do meio da instrução e tudo volta a funcionar. Ex:
frase = frase.replaceAll( "a", "4da65s4d6");
Alguém pode me dizer como substituir um parênteses por uma seguência de letras?
Muito Obrigado!
O caracter “(” é um caracter especial para expressões regulares e inicia um grupo (conjunto de expressões regulares).
Se você quiser que seja tratado literalmente, ou seja, como um mero parêntese esquerdo, use um “\” antes, ou então use Pattern.quote. No seu caso em particular, em vez de replaceAll, use só replace, que deve funcionar se você estiver usando Java 5.0 ou posterior.
[quote=thingol]O caracter “(” é um caracter especial para expressões regulares e inicia um grupo (conjunto de expressões regulares).
Se você quiser que seja tratado literalmente, ou seja, como um mero parêntese esquerdo, use um “\” antes, ou então use Pattern.quote. No seu caso em particular, em vez de replaceAll, use só replace, que deve funcionar se você estiver usando Java 5.0 ou posterior. [/quote]
Bah thingol, funcionou certinho. O meu problema é que eu usava ( e não \(. Gostaria de agradecer e pedir se existe um link que mostre todos esses caracteres que devem receber um tratamento especial por parte do programador.
VLW comunidade!