如何从Java中的字符串中删除特殊字符

非字母或数字字符的字符称为特殊字符。我们应该从字符串中删除所有特殊字符, 以便我们可以清晰流畅地阅读字符串。特殊字符不可读, 因此最好在阅读前将其删除。
Java replaceAll()方法【如何从Java中的字符串中删除特殊字符】String类的Java replaceAll()方法用替换替换该字符串中与给定正则表达式匹配的每个子字符串。
句法

public String replaceAll(String regex, String replacement)

此方法接受两个参数:
  • regex:这是字符串要匹配的正则表达式。它可能是不同的类型。
  • 替换:要替换的字符串。
它返回结果字符串。如果正则表达式语法无效, 则将引发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); }}

输出量
Thisstringcontainsspecialcharacters


在下面的示例中, 我们将所有特殊字符替换为空格。
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 expressionSystem.out.println(str); }}

输出量
Hello JavaProgrammer!

使用用户定义的逻辑删除特殊字符的示例
在以下示例中, 我们定义了从字符串中删除特殊字符的逻辑。我们知道大写字母的ASCII值从65到90(A-Z), 小字母的ASCII值从97到122(a-z)。每个字符与其对应的ASCII值进行比较。如果两个指定条件都返回true, 则返回true, 否则返回false。 for循环执行直到字符串的长度。当字符串达到其大小时, 它将终止执行, 并得到结果字符串。
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; i< str.length(); i++){//comparing alphabets with their corresponding ASCII valueif (str.charAt(i)> 64 & & str.charAt(i)< =122) //returns true if both conditions returns true{//adding characters into empty string resultStr=resultStr+str.charAt(i); }}System.out.println("String after removing special characters: "+resultStr); }}

输出量
String after removing special characters: ProgrammingLanguage

    推荐阅读