非字母或数字字符的字符称为特殊字符。我们应该从字符串中删除所有特殊字符, 以便我们可以清晰流畅地阅读字符串。特殊字符不可读, 因此最好在阅读前将其删除。
Java replaceAll()方法【如何从Java中的字符串中删除特殊字符】String类的Java replaceAll()方法用替换替换该字符串中与给定正则表达式匹配的每个子字符串。
句法
public String replaceAll(String regex, String replacement)
此方法接受两个参数:
- regex:这是字符串要匹配的正则表达式。它可能是不同的类型。
- 替换:要替换的字符串。
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
推荐阅读
- 如何在Windows 10中运行Java程序
- 如何逐字反转Java Word中的字符串
- 如何用Java返回数组
- 如何在Java中保留字符串而不使用反转功能
- 如何在Java中逐行读取文件
- 如何在Java中读取XML文件
- 路由基础之OSPF NSSA区域
- 流媒体(RTMP 协议完全解析)
- MySQL对JOIN做了那些不为人知的优化