Consulta ignorando caracteres

4 respostas
A

quero fazer uma consulta porem gostaria de ignorar letras do tipo “r,s”

por exemplo em minha consulta

banana == bananas

e

ajudar == ajuda

alguem conhece alguma função pronta que faz isso?

4 Respostas

C
Oi.. não sei se entendi direito o que você quer. Mas se está falando de procurar uma String dentro de outra, tente usar o método public boolean contains(CharSequence s) Exemplo:
public class Teste1 {

    private String frase;

    public Teste1() {
        frase = "navegar é coisa de marinheiro";

        String verbo = "navega";

        if (frase.contains(verbo)) {
            System.out.println("Contém o verbo na frase: " + frase);
        } else {
            System.out.println("Não contém o verbo");
        }
    }

    public static void main(String args[]) {
        Teste1 teste = new Teste1();
    }
}
A

Até ai tudo bem… mas no meu caso eu teria de procurar a palavra “navegar” dentro de “navega” e teria que obter resultado booleano é que no meu caso vou pegar palavras prontas elas podem estar no infinitivo, plural etc… por isso que gostaria de ignorar algumas letras como “s” para plural e “r” para forma infinitiva

acho que vou ter que fazer no braço mesmo…

B

Tenta isso:

public static boolean exists(String contents, String pattern){ return contents.matches("(?i)(?s).*" + pattern + "(r|s)?.*"); }

uso:

if(exists("Navegar é preciso", "navega")) System.out.println("E não é que funciona?");
E

Na verdade, você quer ignorar a flexão das palavras, e usar apenas o radical, não?

Para uma lista de palavras da língua portuguesa, com radicais e tudo, você pode procurar adaptar o dicionário do Aspell.

http://leonardof.org/2009/07/05/dicionario-para-aspell-agora-com-o-acordo-ortografico/

Criado 23 de janeiro de 2010
Ultima resposta 26 de jan. de 2010
Respostas 4
Participantes 4