Algoritmo para localizar seqüências fixas e varíaveis de texto?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
diego_qmota
JavaEvangelist
[Avatar]

Membro desde: 28/09/2008 15:44:35
Mensagens: 346
Localização: Paulínia
Offline

Bom dia,

Gostaria de saber se alguém conhece um algoritmo que permita identificar em um determinado texto:
  • Trechos de texto repetidos
  • Trechos de texto varíaveis
  • Separar ambos em um mapa onde a chave é a ordem (índice) em que os trechos estão no texto, e o valor do Map é o objeto que representa o trecho repetido/varíavel


  • A idéia é quebrar linhas de texto em estruturas onde eu possa extrair o texto repetido e o que varia e saber a ordem em que eles aparecem no texto original.

    This message was edited 1 time. Last update was at 16/08/2011 08:45:01


    "Go ahead, make my day!"
    roger_rf
    GUJ Master

    Membro desde: 29/04/2009 07:40:19
    Mensagens: 1091
    Localização: Natal/RN
    Offline

    Talvez seu problema possa ser resolvido com expressões regulares, cuja função é identificar padrões em textos:

    http://download.oracle.com/javase/tutorial/essential/regex/
    http://www.regular-expressions.info/java.html

    O projeto Apache Lucene permite fazer buscas em textos, talvez seja útil também:

    http://lucene.apache.org/java/docs/index.html

    emersonat
    Thread.start()

    Membro desde: 12/02/2009 11:05:28
    Mensagens: 29
    Offline

    voce pode tentar usar o pacote regex....

    Como por exemplo as classes Pattern e Matcher...



    onde como o roger_rf disse vc pode usar expessões regex no lugar da string xpto para procurar por padrões e criar sua logica para colocar no map os resultados dentro do while.




    Oracle Certified Java Programmer 6.0 - OCJP

    http://emersondeandrade.com.br
    [Email] [WWW]
    diego_qmota
    JavaEvangelist
    [Avatar]

    Membro desde: 28/09/2008 15:44:35
    Mensagens: 346
    Localização: Paulínia
    Offline

    O primeiro testes que fiz, para ver se dá certo, foi com o StringTokenizer, desta forma:



    Embora tenha até conseguido separar vários trechos, para outros, não detectou corretamente, colocando String Fixa como String Varíavel e gerando várias String Varíaveis que não têm nada a ver (espaços em branco).
    O problema é que para expressões regulares, teria que gerá-las dinamicamente...
    Teria que ir extraindo as palavras, montar as expressões e procurar padrões?
    Como ficaria, mais ou menos?


    Para cadeias de string´s mais simples funcionou:


    No entanto, para cadeias complexas (segue exemplo com instruções sql):


    Este pode ser o caminho certo? Ou agrego expressões regulares aí?

    This message was edited 6 times. Last update was at 16/08/2011 10:24:35


    "Go ahead, make my day!"
     
    Índice dos Fóruns » Java Avançado
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team