logo

Com eliminar caràcters especials de la cadena a Java

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:

    regex:És l'expressió regular amb la qual s'ha de fer coincidir la cadena. Pot ser de diferents tipus.substitució:La cadena que s'ha de substituir per al partit.

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=&apos;Pr!ogr#am%m*in&amp;g Lan?#guag(e&apos;; String resultStr=&apos;&apos;; //loop execute till the length of the string for (int i=0;i64 &amp;&amp; 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)>