Boa noite Nico Steppat,
teria como montar um replaceAll no java para só aceitar os seguintes caracteres?
0-9 a-z A-Z ° º ª - .
o restante dos caracteres seriam substituídos por espeços em branco.
Boa noite Nico Steppat,
teria como montar um replaceAll no java para só aceitar os seguintes caracteres?
0-9 a-z A-Z ° º ª - .
o restante dos caracteres seriam substituídos por espeços em branco.
public static String removeCaracterEspecial(String str) {
String strRetorno = str;
strRetorno = strRetorno.replaceAll("[ÂÀÁÄÃ]", "A");
strRetorno = strRetorno.replaceAll("[âãàáä]", "a");
strRetorno = strRetorno.replaceAll("[ÊÈÉË]", "E");
strRetorno = strRetorno.replaceAll("[êèéë]", "e");
strRetorno = strRetorno.replaceAll("ÎÍÌÏ", "I");
strRetorno = strRetorno.replaceAll("îíìï", "i");
strRetorno = strRetorno.replaceAll("[ÔÕÒÓÖ]", "O");
strRetorno = strRetorno.replaceAll("[ôõòóö]", "o");
strRetorno = strRetorno.replaceAll("[ÛÙÚÜ]", "U");
strRetorno = strRetorno.replaceAll("[ûúùü]", "u");
strRetorno = strRetorno.replaceAll("Ç", "C");
strRetorno = strRetorno.replaceAll("ç", "c");
strRetorno = strRetorno.replaceAll("[ýÿ]", "y");
strRetorno = strRetorno.replaceAll("Ý", "Y");
strRetorno = strRetorno.replaceAll("ñ", "n");
strRetorno = strRetorno.replaceAll("Ñ", "N");
strRetorno = strRetorno.replaceAll("[+=*&%$#@!_¹²³£¢¬§¨`´~\\?\\^\\[\\]\"'\\|<>(),\\{\\}\\\\]", "");
strRetorno = strRetorno.replaceAll("\s+", " ");
return strRetorno;
}
Será que existe uma forma mais "enxuta" de escrever este método?
Olá Sergio! Tudo bem?
Achei muito legal a forma como você idealizou essa solução!
Apesar de nos parecer bastante repetitivo... ela é bem direta, e funciona para o seu propósito!
Pesquisei a respeito e até conversei com alguns amigos sobre a possibilidade de utilizarmos outras formas de abordar essa funcionalidade...
Pelo que percebi, você realmente fez de uma forma bem clara, o que é ótimo para manutenção do código.
Possivelmente, se tentarmos utilizar qualquer outra forma de solucionar o mesmo problema, teremos um aumento considerável na complexidade do código, e aí entra em questão outra característica do código... será que vale a pena utilizar outra solução que aumenta a complexidade? Cada caso é diferente nesse aspecto, sabe?
Em programação não temos um padrão para cada situação, por assim dizer. O que sempre queremos é que nosso código seja simples de se entender e atinja seu propósito!
Tendo isso em mente, eu te recomendo alguns links que achei interessantes, e que podem te dar um contexto mais amplo:
Substituir Carácter em String em Java
Caso deseje utilizar isso para uma validação, uma opção seria utilizar Regex: Artigo sobre uso de Regex
Espero que te dê mais algumas ideias sobre o assunto!
Realmente eu não tenho outra ideia em mente que funcione da forma como sua solução funcionou... acredito que ela está sendo bem direta e simples de se entender!
A explicação foi legal? Se eu puder te ajudar em mais alguma coisa é só falar!
Boa tarde Guilherme Henrique de Lira Silva,
Obrigado pela dica e opinião.