Páginas

domingo, 5 de setembro de 2010

Removendo letras repetidas com StringBuilder

A pouco tempo atrás trabalhei em uma pequena equipe de desenvolvedores e logo no segundo dia surgiu o problema: Como faço pra remover letras repetidas de uma palavra? Esse requisito estava na documentação. Eu sugeri a solução do problema utilizando StringBuilder. Aí vai o trecho de código que remove letras repetidas (a palavra estando correta ou não rs).

O StringBilder faz parte de: using System.Text não se esqueça de colocar na sessão dos imports.

No Click do botão, adicionar o trecho de código abaixo:

protected void btnRemover_Click(object sender, EventArgs e)

{

//Instanciar um objeto da classe StringBuilder

StringBuilder sb = new StringBuilder();

//Adicionar a palavra que deseja testar

sb.Append(txtPalavra.Text);

//Usar um for pra percorrer o texto

for (int i = 0; i <>

{

//Testar se a posição é 0 pq não podemos testar 0-1

if (i != 0)

{

//Comparar as letras para ver se são iguais

if (sb[i] == sb[i-1])

{

//Caso sejam iguais usar o método remover passando

//como parâmetro o contador do for e a quantidade de letras a ser removida

sb.Remove(i, 1);

}

}

}

//Escrever na Label a nova palavra

lblPalavra.Text = sb.ToString();

}


Problema: O que fazer quando a palavra for CARRO??? Se alguém souber! Ajuda!

Um comentário:

  1. Pode criar um dicionário de palavras que não deverão ser corrigidas. Avaliar isso antes de aplicar o algoritmo.

    ResponderExcluir