Um caractere que não é um caractere alfabético ou numérico é chamado de caractere especial. Devemos remover todos os caracteres especiais da string para que possamos lê-la de forma clara e fluente. Os caracteres especiais não são legíveis, por isso seria bom removê-los antes de ler.
Método Java replaceAll()
Java substitua tudo() método de Corda class substitui cada substring desta string que corresponde à expressão regular fornecida pela substituição.
Sintaxe
public String replaceAll(String regex, String replacement)
Este método aceita dois parâmetros:
Ele retorna o String resultante . Isso joga PatternSyntaxException se a sintaxe da expressão regular for inválida. O método acima produz o mesmo resultado que a expressão:
Pattern.compile(regex).matcher(str).replaceAll(repl)
Exemplo de remoção de caracteres especiais usando o método replaceAll()
No exemplo a seguir, o método removeAll() remove todos os caracteres especiais da string e coloca um espaço no lugar deles.
public class RemoveSpecialCharacterExample1 { public static void main(String args[]) { String str= 'This#string%contains^special*characters&.'; str = str.replaceAll('[^a-zA-Z0-9]', ' '); System.out.println(str); } }
Saída
This string contains special characters
Exemplo
No exemplo a seguir, estamos substituindo todos os caracteres especiais pelo espaço.
pandas loca
public class RemoveSpecialCharacterExample2 { public static void main(String args[]) { String str = 'Hello+-^Java+ -Programmer^ ^^-- ^^^ +!'; str = str.replaceAll('[-+^]*', ' '); //str=str.replaceAll('\W', ' ') //we can also use this regular expression System.out.println(str); } }
Saída
Hello Java Programmer !
Exemplo de remoção de caracteres especiais usando lógica definida pelo usuário
No exemplo a seguir, estamos definindo a lógica para remover caracteres especiais de uma string. Sabemos que o valor ASCII dos alfabetos com letras maiúsculas começa de 65 a 90 (AZ) e o valor ASCII do alfabeto com letras minúsculas começa de 97 a 122 (az). Cada caractere é comparado com seu valor ASCII correspondente. Se ambas as condições especificadas retornarem verdadeiras, ela retornará verdadeira, caso contrário, retornará falsa. O para loop executa até o comprimento da string. Quando a string atinge seu tamanho, ela encerra a execução e obtemos a string resultante.
public class RemoveSpecialCharacterExample3 { public static void main(String[] args) { //declare a string having special characters String str='Pr!ogr#am%m*in&g Lan?#guag(e'; String resultStr=''; //loop execute till the length of the string for (int i=0;i64 && str.charAt(i)<=122) returns true if both conditions { adding characters into empty string resultstr="resultStr+str.charAt(i);" } system.out.println('string after removing special characters: '+resultstr); < pre> <p> <strong>Output</strong> </p> <pre> String after removing special characters: ProgrammingLanguage </pre> <hr></=122)>
=122)>