Un caràcter que no és un caràcter alfabètic o numèric s'anomena caràcter especial. Hem d'eliminar tots els caràcters especials de la cadena perquè puguem llegir la cadena amb claredat i fluïdesa. Els caràcters especials no són llegibles, així que seria bo eliminar-los abans de llegir-los.
Mètode Java replaceAll().
Java substituirAll() mètode de Corda class substitueix cada subcadena d'aquesta cadena que coincideix amb l'expressió regular donada amb la substitució.
Sintaxi
public String replaceAll(String regex, String replacement)
Aquest mètode accepta dos paràmetres:
Torna el cadena resultant . Es tira PatternSyntaxException si la sintaxi de l'expressió regular no és vàlida. El mètode anterior dóna el mateix resultat que l'expressió:
proves de programari
Pattern.compile(regex).matcher(str).replaceAll(repl)
Exemple d'eliminació de caràcters especials mitjançant el mètode replaceAll().
A l'exemple següent, el mètode removeAll() elimina tots els caràcters especials de la cadena i posa un espai al seu lloc.
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); } }
Sortida
This string contains special characters
Exemple
En l'exemple següent, estem substituint tot el caràcter especial per l'espai.
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); } }
Sortida
Hello Java Programmer !
Exemple d'eliminació de caràcters especials mitjançant la lògica definida per l'usuari
En l'exemple següent, estem definint la lògica per eliminar caràcters especials d'una cadena. Sabem que el valor ASCII dels alfabets amb lletres majúscules comença de 65 a 90 (A-Z) i el valor ASCII de l'alfabet amb lletres minúscules comença entre 97 i 122 (a-z). Cada caràcter es compara amb el seu valor ASCII corresponent. Si les dues condicions especificades retornen vertadera, retornarà vertadera, sinó que retornarà fals. El per bucle s'executa fins a la longitud de la cadena. Quan la cadena arriba a la seva mida, finalitza l'execució i obtenim la cadena resultant.
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)>