Deixar termo pesquisado em destaque no resultado

5 respostas
mcbarsotti

olá pessoal, tenho que fazer uma busca que quando o termo que o usuario pesquisar retornar algum texto, o termo tem que ficar em negrito, tipo no google quando se faz uma busca, nos resultados os termos pesquisados ficam em negrito, alguem tem idéia de como fazer isso?
obrigado!

5 Respostas

bland

mcbarsotti,

Caso a aplicação seja web, você pode estar utilizando a tag HTML

E dentro das tags você colocaria o resultado de sua busca.
Espero ter ajudado.
Abraço!

mcbarsotti

deixe eu explicar melhor…

tenho uma pagina chamada pesquisa.jsp e outra chamada result.jsp

quando o usuario digitar algo para pesquisa, isso é envia para o result.jsp que tem uma classe chamada motorPesquisa.java, essa classe tem varias querys que fazem requisiçoes no bd para retornar oque o usuario pesquisou.
e esse resultado pode estar tanto no meio de textos enormes como em uma unica palavra!

o problema é como eu identifico e comparo oque o usuario digitou com oque as VARIAS querys estão me retornando.

acho q agora eu fui mais claro.

obrigado

bland

mcbarsotti,

Com certeza você foi mais claro agora.
Veja bem, você poderia estar buscando esse valor após o usuário clicar no pesquisar. Ou seja, você iria guardar esse valor da pesquisa e após ter sido feita, você poderia estar verificando a igualdade destas para que você possa estar destacando no texto a ser apresentado.
Essa seria uma solução. Mas pode ser que não seja a melhor.
Se alguém puder sugerir uma melhor solução, agradeço a ajuda.
Espero ter ajudado.
Abraço!

T

Isso é um trabalho para expressões regulares (é o uso típico, aliás).

Digamos que você tivesse procurado por “alberto santos dumont”, no seguinte texto:

String s = “O sr. Alberto comprou um relógio em Santos da marca Dumont”

Você poderia fazer algo como:

s = s.replaceAll ("(alberto|santos|dumont)", “\1”);

Na verdade é um pouco mais complicado que isso, vou testar e postar o resultado.

T

O correto é isto:

class TesteRE2 {
    public static void main(String[] args) {
        String s = "O sr. Alberto comprou um relógio em Santos da marca Dumont";
         s = s.replaceAll ("(?i)(alberto|santos|dumont)", "<b>$1</b>"); 
         System.out.println (s);
    }
}

A saída é:

O sr. Alberto comprou um relógio em Santos da marca Dumont

Criado 22 de agosto de 2006
Ultima resposta 22 de ago. de 2006
Respostas 5
Participantes 3