Boa tarde pessoal tenho um metodo para pesquisar uma palavra ou qualquer coisa que o usuario digitar, dentro de um JEditorPane.
Só que se no texto tiver a palavra “TÍTULO” ( Com acento ), e no campo de pesquisa ele digitar “TITULO” ( Sem acento ) a pesquisa não retorna resultados
algum teria alguma ideia?
segue meu código abaixo.
public void pesquisarTexto() {
editorPanePrincipal.selectAll();
String texto = editorPanePrincipal.getSelectedText().toUpperCase();
if (texto != null) {
Pattern p = Pattern.compile(textFieldPesquisar.getText().toUpperCase());
Matcher m = p.matcher(texto);
int contadorPosicoes = 0;
if ((posicoesPesquisa == null) || (!pesquisarPor.equalsIgnoreCase(textFieldPesquisar.getText()))) {
posicoesPesquisa = new ArrayList<Integer>();
pesquisarPor = textFieldPesquisar.getText();
tamanhoStringPesquisa = textFieldPesquisar.getText().length();
contadorBotao = 0;
while (m.find()) {
posicoesPesquisa.add(contadorPosicoes, m.start());
contadorPosicoes++;
}
}
if (contadorBotao <= posicoesPesquisa.size() - 1) {
editorPanePrincipal.grabFocus();
editorPanePrincipal.setSelectionStart(posicoesPesquisa.get(contadorBotao));
editorPanePrincipal.setSelectionEnd(posicoesPesquisa.get(contadorBotao) + tamanhoStringPesquisa);
contadorBotao++;
} else
contadorBotao = 0;
if (posicoesPesquisa.size() == 0) {
JOptionPane.showMessageDialog(null, "Expressão não encontrada.");
textFieldPesquisar.grabFocus();
textFieldPesquisar.setSelectionStart(0);
textFieldPesquisar.setSelectionEnd(textFieldPesquisar.getText().length());
}
}
}