Busca em texto com ignoreCase [Resolvido]

Boa tarde pessoal.
Gostaria de uma ajuda de vocês, primeiramente vou explicar o problema.
Tenho uma String que contem um texto, e quero buscar varias palavras nesta String (Estas palavras estão em um vetor).
Meu problema está em como buscar na String ignorando acentos e maiúsculas.

Exemplo do texto e do retorno que preciso

//Este é o texto que tenho para pequisar String texto = "Estou programando em Java e utilizando o Banco de dados MySql," + "mas estou apanhando muito. Quando se usa Padrões de Projetos com " + "Auxilio de Engenharia de software pode ficar menos difícil"; //Palavras que tenho em um vetor, podem ver que 'java' está minusculo 'Padoes de Projeto' sem acento e preciso delas String[] palavras = {"java", "Banco de Dados", "engenharia de Software", "Padroes de Projetos"}; String achadas; for (int i = 0; i < palavras.length; i++) { if (existe(palavras[i], texto)) { achadas += "," + palavras[i]; } }
A pergunta é: O que deveria ter neste método extiste(String palavra, String texto)
Ps. Nao quero exatamente a resposta, quero apenas uma ideia de onde procurar para solucionar este problema :smiley:

James,

Caro entanglement,
Eu ja havia estudado esta classe (ela trabalha apenas com Acentos e caracteres diferentes), porém queria algo do tipo o método contains(), da classe String.

Gostaria de saber se exite algum classe/método onde eu faço o mesmo que contains da String ignorando acentos e maiúscula

Porém fico muito agradecido pela ajuda

att

você pode fazer um método que faça isso, como o que ja fez, só altera a implementação, pega as 2 strings, limpa os acentos, e aí faz uma comparação case insensitive.

Boa noite pessoal,
Consegui solucionar meu problema, fiquei até com vergonha :oops: pois foi bem mais simples do que eu pensava. Se eu tivesse pesquisado mais um pouco teria solucionado.
Fico agradecido pela ajuda.
Abaixo a solução para meu problema,

public class Teste {

    public static boolean verifica(String texto, String padrao) {
        //Tira acentos e coloca tudo minusculo
        texto = prepara(texto);
        padrao = prepara(padrao);

        //Verifica se tem a palavra
        if (texto.contains(padrao)) {
            return true;
        } else {
            return false;
        }
    }

    private static String prepara(String str) {
        //coloca tudo em minusculo
        str = str.toLowerCase();

        //remover acentos
        str = RemoverAcentos.remover(str);
        return str;
    }

    public static void main(String a[]) {
        String texto = "Estou programando em Java e utilizando o Banco de dados MySql,"
                + "mas estou apanhando muito. Quando se usa Padrões de Projetos com "
                + "Auxilio de Engenharia de software pode ficar menos difícil";

        System.out.println(verifica(texto, "JavA"));
        System.out.println(verifica(texto, "Engenharia de soFtWare"));
        System.out.println(verifica(texto, "Padrões de Projetos"));
        System.out.println(verifica(texto, "DiFicil"));
    }
}

O método RemoverAcentos.remover(str) eu encontrei aqui no fórum mesmo, link abaixo

Se alguém souber como melhorar meu código, por favor dê dicas.
Att.