Як видалити спеціальні символи з рядка в Java
Символ, який не є буквою або цифрою, називається спеціальним символом. Ми повинні видалити всі спеціальні символи з рядка, щоб ми могли чітко та вільно читати рядок. Спеціальні символи не читаються, тому їх було б добре видалити перед читанням.
Метод Java replaceAll().
Java замінитиВсе() метод Рядок клас замінює кожен підрядок цього рядка, який відповідає даному регулярному виразу, заміною.
Синтаксис
public String replaceAll(String regex, String replacement)
Цей метод приймає два параметри:
Це повертає результуючий рядок . Це кидає PatternSyntaxException якщо синтаксис регулярного виразу недійсний. Наведений вище метод дає той самий результат, що й вираз:
Pattern.compile(regex).matcher(str).replaceAll(repl)
Приклад видалення спеціальних символів за допомогою методу replaceAll().
У наступному прикладі метод removeAll() видаляє всі спеціальні символи з рядка та ставить пробіл замість них.
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); } } Вихід
This string contains special characters
приклад
У наступному прикладі ми замінюємо всі спеціальні символи пробілом.
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); } } Вихід
Hello Java Programmer !
Приклад видалення спеціальних символів за допомогою визначеної користувачем логіки
У наступному прикладі ми визначаємо логіку видалення спеціальних символів із рядка. Ми знаємо, що значення ASCII алфавіту великих літер починається від 65 до 90 (A-Z), а значення ASCII алфавіту малих літер починається від 97 до 122 (a-z). Кожен символ порівнюється з відповідним значенням ASCII. Якщо обидві вказані умови повертають true, воно повертає true, інакше повертає false. The для циклу виконується до довжини рядка. Коли рядок досягає свого розміру, він припиняє виконання, і ми отримуємо результуючий рядок.
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)>