非字母或数字字符的字符称为特殊字符。我们应该从字符串中删除所有特殊字符, 以便我们可以清晰流畅地阅读字符串。特殊字符不可读, 因此最好在阅读前将其删除。
Java replaceAll()方法
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);
}
}
输出量
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。 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 value
if (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
评论前必须登录!
注册