Java提供了几种从字符串中删除子字符串的方法。
使用 replace 方法
此方法属于Java String类,并被重载以提供同一方法的两种不同实现。
在第一种方法中,将一个新字符添加到字符串中,以替换之前的每个字符。
这种方法在更新所有旧字符之后返回带有新字符的字符串。
语法:
如果在字符串中找不到新字符,则返回此字符串。
示例:
输出:
使用Charsequence
第二种方法是将所需的字符串替换成CharSequence,而CharSequence只是一个字符的集合。
语法:
这个方法和第一个方法的不同之处在于它替换了一个字符串。
示例:
输出:
用空字符串替换子字符串
Java允许你轻松地用一个空的String来替换你想从String中删除的子串。
语法:
示例:
输出:
使用String的replaceFirst方法
此方法搜索与正则表达式匹配的字符串,如果找到,则用给定的字符串替换它。
内部实现中,这个函数通过使用Pattern类的compile()和matcher()方法,使用正则表达式提取文本。
语法:
将创建一个正则表达式来从字符串中提取一个数字,并将其替换为另一个数字作为字符串。
注意:这个数字只会改变字符串的前两位数字;其余数字将保持不变。
示例:
输出:
replaceFirst()方法
replaceFirst()方法可以与空String一起使用,以从String中删除子字符串。
语法:
示例:
输出:
使用replaceAll方法
与replaceFirst相反,replaceAll方法利用正则表达式替换字符串的每个实例。
与replaceFirst类似,该方法使用compile()和matcher()方法,使用正则表达式提取字符串。如果正则表达式不正确,它还会产生PatternSyntaxException。
语法:
我们将使用一个正则表达式从字符串中取出所有数字,并替换每个实例中的数字。
这个正则表达式可以识别0到9之间的任何数字。
示例:
输出:
replaceAll()方法
使用replaceAll()方法,可以使用空String从字符串中删除子字符串。
语法:
示例:
输出:
使用StringBuilder的delete()方法
为了从字符串中添加和删除字符,StringBuilder保存了一个可修改的字符序列。
一个初始容量为16个字符的字符串构建器是由空的StringBuilder函数Object() {[native code]}
创建的,如果内部缓冲区溢出,则会自动创建一个更大的字符串构建器。
要从字符串中删除的子字符串的开始和结束被指定为delete()函数的第一个和第二个int形参。
最后一个索引是互斥的,因为它从第二个参数中减去1,但开始索引是包含的。
语法:
当起始值为负值、大于字符串的长度或大于字符串的结束时,将抛出StringIndexOutOfBoundsException
异常。当起点和终点相等时,不进行任何调整。
示例:
输出:
使用StringBuilder replace()方法
replace()函数和delete()方法之间的唯一区别是第三个参数,它用于替换从字符串中删除的字符。
如果需要替换较大的字符串,则会增加大小以适应字符串的长度。
语法:
函数toString() {[native code]}()可用于在该方法返回StringBuilder后打印更新后的字符串。
示例:
输出:
总结
在本文中,您已经学习了如何替换和删除字符以从字符串中删除子字符串。提供的技术包括StringBuilder delete()和replace()方法的使用,以及字符串replace()、replaceFirst()和replaceAll()函数。