Znak, který není abecedou nebo číselným znakem, se nazývá speciální znak. Z řetězce bychom měli odstranit všechny speciální znaky, abychom mohli řetězec jasně a plynule přečíst. Speciální znaky nejsou čitelné, proto by bylo dobré je před čtením odstranit.
Metoda Java replaceAll().
Jáva vyměnit vše() metoda Tětiva class nahradí každý podřetězec tohoto řetězce, který odpovídá danému regulárnímu výrazu náhradou.
Syntax
public String replaceAll(String regex, String replacement)
Tato metoda přijímá dva parametry:
Vrací to výsledný řetězec . To hází PatternSyntaxException pokud je syntaxe regulárního výrazu neplatná. Výše uvedená metoda dává stejný výsledek jako výraz:
Pattern.compile(regex).matcher(str).replaceAll(repl)
Příklad odstranění speciálních znaků pomocí metody replaceAll().
V následujícím příkladu metoda removeAll() odstraní z řetězce všechny speciální znaky a na jejich místo vloží mezeru.
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ýstup
This string contains special characters
Příklad
V následujícím příkladu nahrazujeme všechny speciální znaky mezerou.
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ýstup
Hello Java Programmer !
Příklad odstranění speciálních znaků pomocí uživatelsky definované logiky
V následujícím příkladu definujeme logiku pro odstranění speciálních znaků z řetězce. Víme, že hodnota ASCII velkých písmen začíná od 65 do 90 (A-Z) a hodnota ASCII malých písmen začíná od 97 do 122 (a-z). Každý znak se porovná s odpovídající hodnotou ASCII. Pokud obě zadané podmínky vrátí hodnotu true, vrátí hodnotu true, jinak vrátí hodnotu false. The pro smyčku provede až do délky řetězce. Když řetězec dosáhne své velikosti, ukončí provádění a získáme výsledný řetězec.
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)>