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 
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.