Olá!
Estou tentando fazer comparação entre duas Strings ignorando acentuação e tamanho das letras.
ex:
árvore == Arvore
Eu consigo fazer essa comparação com um algoritmo que achei aqui no forum , segue abaixo…
import java.util.*;
import java.text.*;
class ExemploCollator {
public static void main(String[] args) {
// Vamos comparar duas strings ignorando os acentos.
String st1 = "árvore";
String st2 = "Arvore";
String st4 = "árvora"; // note que esta string é diferente
Collator collator = Collator.getInstance (new Locale ("pt", "BR"));
collator.setStrength(Collator.PRIMARY); // importante!
if (collator.compare (st1, st2) == 0) {
System.out.println ("e a mesma palavra");
}
if (collator.compare (st1, st4) != 0) {
System.out.println ("não são a mesma palavra");
}
}
}
Porém quando faço essa comparação lendo as Strings de um arquivo texto que contém árvore e Arvore, ela não acha nehuma string igual!
Segue abaixo…
while (linha_queries != null){
File labels = new File(arquivo2);
InputStream islabels = new FileInputStream(arquivo2);
InputStreamReader isrlabels = new InputStreamReader(islabels);
BufferedReader brlabels = new BufferedReader(isrlabels);
String linha_labels = brlabels.readLine();
while((linha_labels != null) && (controle != 1)){
Collator collator = Collator.getInstance (new Locale ("pt", "BR"));
collator.setStrength(Collator.PRIMARY); // importante!
// ignora acentos e tamanho das palavras
if (collator.compare (linha_queries, linha_labels) == 0) {
System.out.println (linha_labels+" "+linha_queries);
controle = 1;
}
linha_labels = brlabels.readLine();
}
linha_queries = brqueries.readLine();
controle = 0;
}
Agluém sabe qual é o problema?
Obrigado