domingo, 2 de dezembro de 2012

Exemplos de String.replace()

Veremos neste post 4 métodos para substituir conteúdo em uma classe String que permitem trocar um caracter, uma sequência de caracteres, todas as ocorrência de uma padrão ou a primeira ocorrência de um padrão.

1. utilizando o método Replace para trocar um caracter
Este método pega um caracter (primeiro parâmetro da chamada) e troca todas as ocorrências deste pelo novo caracter (segundo parâmetro de passagem). O formato da chamada é:

String.replace(char caracterAntigo, char caracterNovo)

Este método retorna uma nova String com os caracteres substituídos. A troca é sensível ao caso, portanto uma chamada com "r" não irá trocar as ocorrências de "R". Se não for encontrado o caracter, a String será retornada como foi passada.


String exemplo = "O rato roeu a roupa do rei de Roma.";
String nova = exemplo.replace('r', 't');

Saída:
O tato toeu a toupa do tei de Roma.


2. utilizando o método Replace para trocar uma sequência de caracteres
Este método troca uma sequência de caracteres pela outra. As sequências não podem ser nulas. Caso alguma seja, será gerado um erro do tipo NullPointerException. A troca é feita do início para o final, assim se temos uma String originalmente igual a "ccc" e realizamos um replace("cc", "d"), o resultado final será "dc". O formato do método é:

String replace(CharSequence aSerTrocado, CharSequence trocarPor)


String exemplo = "String de exemplo para procedimento de troca de caracteres.";
String nova = exemplo.replace("ro", "RO");

Saída:
String de exemplo para pROcedimento de tROca de caracteres.



3. utilizando o método ReplaceAll com expressões regulares
Se você vem do ambiente Windows ou de programação em linguagem como Delphi ou VB provavelmente não está acostumado com as regex. Estas expressões permitem que realizemos operações de busca e substituição bastante complexas em String. O formato do método é:

replaceAll(String regex, String sequenciaSubstituta)

Uma boa fonte de consulta são alguns posts que já coloquei no blog a algum tempo. Dê uma olhada nos posts denominados Expressões Regulares.

String exemplo = "Exemplo de troca de caracteres utilizando expressões regulares.";
String novo = exemplo.replaceAll("^r","S");

Output:
Exemplo de troca de caracteres utilizando expressões Segulares.

A expressão ^r indica que o programa irá procurar as palavras iniciadas com "r". O método irá localizar estes casos e trocar a letra "r" por "S" como vimos no resultado apresentado.

Se a expressão regular não for válida, o método replaceAll() irá gerar uma exceção do tipo PatternSyntaxException.



4. utilizando o método ReplaceFirst
Funciona com no exemplo 3, porém somente realiza a troca da primeira ocorrência da sequência de caracteres.

replaceFirst(String regex, String sequenciaSubstituta)


String exemplo = "Exemplo de troca de caracteres utilizando expressões regulares com replaceFirst";
String novo = exemplo.replaceFirst("re","SE");

Output:
Exemplo de troca de caracteSEs utilizando expressões regulares com replaceFirst

A segunda ocorrência de "re" não é trocada.

Nenhum comentário:

Postar um comentário