Een teken dat geen alfabet of numeriek teken is, wordt een speciaal teken genoemd. We moeten alle speciale tekens uit de string verwijderen, zodat we de string duidelijk en vloeiend kunnen lezen. Speciale tekens zijn niet leesbaar, dus het is verstandig deze vóór het lezen te verwijderen.
Java-methode ReplaceAll().
Java vervang alles() methode van Snaar class vervangt elke substring van deze string die overeenkomt met de gegeven reguliere expressie door de vervanging.
Syntaxis
public String replaceAll(String regex, String replacement)
Deze methode accepteert twee parameters:
Het retourneert de resulterende tekenreeks . Het gooit PatroonSyntaxisUitzondering als de syntaxis van de reguliere expressie ongeldig is. De bovenstaande methode levert hetzelfde resultaat op als de uitdrukking:
Pattern.compile(regex).matcher(str).replaceAll(repl)
Voorbeeld van het verwijderen van speciale tekens met de methode ReplaceAll().
In het volgende voorbeeld verwijdert de methode removeAll() alle speciale tekens uit de tekenreeks en plaatst er een spatie voor.
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); } }
Uitvoer
This string contains special characters
Voorbeeld
In het volgende voorbeeld vervangen we alle speciale tekens door de spatie.
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); } }
Uitvoer
Hello Java Programmer !
Voorbeeld van het verwijderen van speciale tekens met behulp van door de gebruiker gedefinieerde logica
In het volgende voorbeeld definiëren we logica om speciale tekens uit een tekenreeks te verwijderen. We weten dat de ASCII-waarde van hoofdletteralfabetten begint van 65 tot 90 (A-Z) en de ASCII-waarde van kleine letteralfabetten begint van 97 tot 122 (a-z). Elk teken wordt vergeleken met de overeenkomstige ASCII-waarde. Als beide opgegeven voorwaarden waar retourneren, wordt waar geretourneerd, anders wordt onwaar geretourneerd. De for loop wordt uitgevoerd tot de lengte van de snaar. Wanneer de string zijn grootte bereikt, wordt de uitvoering beëindigd en krijgen we de resulterende string.
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)>