Olá pessoal,
eu tava discutindo com um colega aqui do forum sobre busca por strings em listas neste post:
Gostaria de saber como eu poderia fazer uma busca que não diferenciasse letras maiusculas de minusculas, acentuadas de não acentuadas.
Se eu utilizar o contains sugerido pelo colega, não pegaria todas as strings.
Mas se eu utilizasse regex, eu teria que pegar letra por letra da string buscada e ir contruindo minha string de regex.
Algo do tipo:
string de busca digitada:
pá
regex para a busca:
[pP][aAáÁãÃàÀäÄ]
Meu regex ficaria gigantesco e ainda poderia ter um problema quanto ao tempo de busca.
Alguem tem uma idéia melhor?
Acho que não tem como eu fazer isso de forma melhor que utilizando um banco de dados com a colation correta.
Aqui vai um exemplo:
package filmes2;
import java.util.ArrayList;
public class Filmes2
{
public static void main(String[] args)
{
ArrayList<String> filmes;
filmes = new ArrayList<String>();
filmes.add("programacao");
filmes.add("programaçao");
filmes.add("programação");
filmes.add("programacão");
filmes.add("Programacao");
filmes.add("Programaçao");
filmes.add("Programação");
filmes.add("Programacão");
System.out.println("teste 1:");
System.out.println("________________________________");
for (String l : filmes)
{
if (l.contains("programaçao"))
{
System.out.println(l);
}
}
System.out.println("teste 2:");
System.out.println("________________________________");
for (String l : filmes)
{
if (l.matches("^[pP]rograma[çc][aã]o$"))
{
System.out.println(l);
}
}
}
}

