logo

Hur man tar bort specialtecken från sträng i Java

Ett tecken som inte är ett alfabet eller ett numeriskt tecken kallas ett specialtecken. Vi bör ta bort alla specialtecken från strängen så att vi kan läsa strängen tydligt och flytande. Specialtecken är inte läsbara, så det skulle vara bra att ta bort dem innan du läser.

Java replaceAll()-metoden

Java Ersätt alla() metod av Sträng klass ersätter varje delsträng av denna sträng som matchar det givna reguljära uttrycket med ersättningen.

Syntax

 public String replaceAll(String regex, String replacement) 

Denna metod accepterar två parametrar:

    regex:Det är det reguljära uttrycket som strängen ska matchas till. Det kan vara av olika slag.ersättning:Strängen som ska ersättas för matchen.

Den returnerar resulterande sträng . Det kastar PatternSyntaxException om syntaxen för reguljära uttryck är ogiltig. Ovanstående metod ger samma resultat som uttrycket:

 Pattern.compile(regex).matcher(str).replaceAll(repl) 

Exempel på att ta bort specialtecken med metoden replaceAll().

I följande exempel tar metoden removeAll() bort alla specialtecken från strängen och sätter ett mellanslag i stället för dem.

 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); } } 

Produktion

 This string contains special characters 

Exempel

I följande exempel ersätter vi alla specialtecken med mellanslag.

 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); } } 

Produktion

 Hello Java Programmer ! 

Exempel på att ta bort specialtecken med användardefinierad logik

I följande exempel definierar vi logik för att ta bort specialtecken från en sträng. Vi vet att ASCII-värdet för alfabet med stora bokstäver börjar från 65 till 90 (A-Z) och ASCII-värdet för alfabet med små bokstäver börjar från 97 till 122 (a-z). Varje tecken jämförs med deras motsvarande ASCII-värde. Om båda de angivna villkoren returnerar true returnerar det true annars returnerar false. De för slinga körs till strängens längd. När strängen når sin storlek, avslutas exekveringen och vi får den resulterande strängen.

 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)>