segunda-feira, 11 de fevereiro de 2008

Destacar Palavras

public static String destacarExpressoesApresentacao(String textoOriginal, String[] palavrasProcuradas)
{
String textoComDestaques = textoOriginal;
int qtdPalavras = palavrasProcuradas.length;

for(int i = 0; i < qtdPalavras; i++)
{
String regex = montaRegex(palavrasProcuradas[i]);

Pattern pattern = Pattern.compile("(?i)" + regex.toLowerCase());
Matcher matcher = pattern.matcher(textoComDestaques);

while(matcher.find())
{
String palavra = matcher.group();
textoComDestaques = textoComDestaques.replaceAll(palavra,"" + palavra.toUpperCase() + "");
}

}

return textoComDestaques;
}


private static String montaRegex(String regex)
{
regex = regex.replaceAll("(?i)[aáàãâ]", "[AÁÀÃÂ]");
regex = regex.replaceAll("(?i)[eéèê]", "[EÉÈÊ]");
regex = regex.replaceAll("(?i)[iíì]", "[IÍÌ]");
regex = regex.replaceAll("(?i)[oóòõô]", "[OÓÒÕÔ]");
regex = regex.replaceAll("(?i)[uúù]", "[UÚÙ]");
regex = regex.replaceAll("(?i)[cç]", "[CÇ]");

return regex;
}