logo

Ako odstrániť špeciálne znaky z reťazca v jazyku Java

Znak, ktorý nie je abecedou alebo číselným znakom, sa nazýva špeciálny znak. Z reťazca by sme mali odstrániť všetky špeciálne znaky, aby sme mohli reťazec prečítať jasne a plynulo. Špeciálne znaky nie sú čitateľné, preto by bolo dobré ich pred čítaním odstrániť.

Metóda Java replaceAll().

Java nahradiť všetko() spôsob Reťazec class nahradí každý podreťazec tohto reťazca, ktorý sa zhoduje s daným regulárnym výrazom, náhradou.

Syntax

css na zalamovanie textu
 public String replaceAll(String regex, String replacement) 

Táto metóda akceptuje dva parametre:

    regulárny výraz:Je to regulárny výraz, ku ktorému sa má reťazec priradiť. Môže byť rôznych typov.náhrada:Reťazec, ktorý sa má nahradiť zápalkou.

Vracia výsledný reťazec . To hádže PatternSyntaxException ak je syntax regulárneho výrazu neplatná. Vyššie uvedená metóda poskytuje rovnaký výsledok ako výraz:

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

Príklad odstránenia špeciálnych znakov pomocou metódy replaceAll().

V nasledujúcom príklade metóda removeAll() odstráni z reťazca všetky špeciálne znaky a namiesto nich vloží medzeru.

užívateľské meno
 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); } } 

Výkon

 This string contains special characters 

Príklad

V nasledujúcom príklade nahrádzame všetky špeciálne znaky medzerou.

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

Výkon

 Hello Java Programmer ! 

Príklad odstránenia špeciálnych znakov pomocou užívateľom definovanej logiky

V nasledujúcom príklade definujeme logiku na odstránenie špeciálnych znakov z reťazca. Vieme, že ASCII hodnota veľkých písmen začína od 65 do 90 (A-Z) a ASCII hodnota malých písmen začína od 97 do 122 (a-z). Každý znak sa porovná so zodpovedajúcou hodnotou ASCII. Ak obe zadané podmienky vrátia hodnotu true, vrátia hodnotu true, inak vrátia hodnotu false. The pre slučku vykoná až do dĺžky reťazca. Keď reťazec dosiahne svoju veľkosť, ukončí vykonávanie a získame výsledný reťazec.

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