Ir ao conteúdo
  • Cadastre-se

Comparação de duas Strings no Delphi (Busca por similaridade)


Alpha-X

Posts recomendados

  • Membro VIP

Tive um problema parecido no trabalho, não criei a solução, apenas pensei em uma, talvez a ideia te ajude...

O problema é definir o que é mais parecido, pensei em fazer uma função que retorna um float de 0 (totalmente diferente) a 1 (igual). A função compara as duas palavras letra a letra, os passos seriam mais ou menos esses:

1) Começa com um indice para cada palavra apontando a primeira letra de cada palavra ("i" e "j") e com um contador de diferenças ("d");

2) Se a letra apontada pelos dois contadores forem iguais incremente os dois contadores e repita esse passo até o fim das palavra.

3) Se for o fim da palavra va para o passo 5.

4) Se for diferente descubra palavra1 == palavra2[j] com o menor valor de i + j (sim, os valores de i e j devem variar, mas devem sempre ser maiores d que quando entraram nesse passo). Some a d a diferença entre o i + j que você achou com o i + j inicial.

5) O resultado é 1 - (d / (soma do número de caracteres das palavras)).

obs: Como não existe um critério fixo para saber se duas palavras são parecidas, você pode considerar alguns caracters como "c" e "ç" iguais ou quase iguais.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...