Java如何从字符串删除子字符串

Java提供了几种从字符串中删除子字符串的方法。

使用 replace 方法

此方法属于Java String类,并被重载以提供同一方法的两种不同实现。

在第一种方法中,将一个新字符添加到字符串中,以替换之前的每个字符。

这种方法在更新所有旧字符之后返回带有新字符的字符串。

语法:

string.replace(char oldChar, char newChar)

如果在字符串中找不到新字符,则返回此字符串。

示例:

public class RemoveSubString
{
    public static void main(String[] args) {
        String para = "JavatPoint is for learning purpose";
        String replace = para.replace('e', 'o');
        System.out.println(replace);
    }
}

输出:

使用 replace 方法

使用Charsequence

第二种方法是将所需的字符串替换成CharSequence,而CharSequence只是一个字符的集合。

语法:

string.replace(char oldChar, char newChar)

这个方法和第一个方法的不同之处在于它替换了一个字符串。

示例:

public class RemoveSubString
{
    public static void main(String[] arg){
        String para = "John like to learn programming";
        String replace = para.replace("learn", "teach");
        System.out.println(replace);
    }
}

输出:

使用Charsequence

用空字符串替换子字符串

Java允许你轻松地用一个空的String来替换你想从String中删除的子串。

语法:

string.replace(char oldChar, empty char)

示例:

package org.arpit.java2blog;
public class RemoveSubStringFromString {
    public static void main(String[] arg) {
        String para = "John like to learn code";
        String replace = para.replace("to learn", "");
        System.out.println(replace);
    }
}

输出:

用空字符串替换子字符串

使用String的replaceFirst方法

此方法搜索与正则表达式匹配的字符串,如果找到,则用给定的字符串替换它。

内部实现中,这个函数通过使用Pattern类的compile()和matcher()方法,使用正则表达式提取文本。

语法:

string.replaceFirst(No. of digit, new digit)

将创建一个正则表达式来从字符串中提取一个数字,并将其替换为另一个数字作为字符串。

注意:这个数字只会改变字符串的前两位数字;其余数字将保持不变。

示例:

package org.arpit.java2blog;
public class RemoveSubStringFromString {
    public static void main(String[] arg) {
        String para = "John is 101 years old, and Mary is 20 years old";
        String replaceFirst = para.replaceFirst("\\d\\d\\d", "20");
        System.out.println(replaceFirst);
    }
}

输出:

使用String的replaceFirst方法

replaceFirst()方法

replaceFirst()方法可以与空String一起使用,以从String中删除子字符串。

语法:

string.replace(No. of digit, empty char)

示例:

package org.arpit.java2blog.entry;
public class RemoveSubStringFromString{
    public static void main(String[] arg) {
        String para = " John is 101 years old, and Mary is 20 years old ";
        String parafirstreplace = para.replaceFirst("\\d\\d", "");
        System.out.println(parafirstreplace);
    }}

输出:

replaceFirst()方法

使用replaceAll方法

与replaceFirst相反,replaceAll方法利用正则表达式替换字符串的每个实例。

与replaceFirst类似,该方法使用compile()和matcher()方法,使用正则表达式提取字符串。如果正则表达式不正确,它还会产生PatternSyntaxException。

语法:

String replaceAll(No. of digit, int new number)

我们将使用一个正则表达式从字符串中取出所有数字,并替换每个实例中的数字。

这个正则表达式可以识别0到9之间的任何数字。

示例:

public class RemoveSubStringFromString {
    public static void main(String[] arg) {
        String para = " John is 10 years old, and Mary is 20 years old ";
        String parareplace = para.replaceAll("\\d\\d", "30");
        System.out.println(parareplace);
    }}

输出:

使用replaceAll方法

replaceAll()方法

使用replaceAll()方法,可以使用空String从字符串中删除子字符串。

语法:

string.replace(No. of digit, empty char)

示例:

package org.arpit.java2blog;
public class RemoveSubStringFromString  {
    public static void main(String[] arg) {
        String replaceAll = " John is 10 years old, and Mary is 20 years old ";
        String replaceAllNumbers = replaceAll.replaceAll("\\d\\d", "");
        System.out.println(replaceAllNumbers);
    }
}

输出:

replaceAll()方法

使用StringBuilder的delete()方法

为了从字符串中添加和删除字符,StringBuilder保存了一个可修改的字符序列。

一个初始容量为16个字符的字符串构建器是由空的StringBuilder函数Object() {[native code]}创建的,如果内部缓冲区溢出,则会自动创建一个更大的字符串构建器。

要从字符串中删除的子字符串的开始和结束被指定为delete()函数的第一个和第二个int形参。

最后一个索引是互斥的,因为它从第二个参数中减去1,但开始索引是包含的。

语法:

public StringBuilder delete(int start,int end)

当起始值为负值、大于字符串的长度或大于字符串的结束时,将抛出StringIndexOutOfBoundsException异常。当起点和终点相等时,不进行任何调整。

示例:

public class main{
public static void main(String[] args){
         StringBuilder stringBuilder =
                new StringBuilder("Java is language or programming language");
        StringBuilder builder = stringBuilder.delete(7, 19);

        System.out.println(builder.toString());
}
}

输出:

使用StringBuilder的delete()方法

使用StringBuilder replace()方法

replace()函数和delete()方法之间的唯一区别是第三个参数,它用于替换从字符串中删除的字符。

如果需要替换较大的字符串,则会增加大小以适应字符串的长度。

语法:

string.replace(int start, int end, char newChar)

函数toString() {[native code]}()可用于在该方法返回StringBuilder后打印更新后的字符串。

示例:

public class main{
public static void main(String[] args){
StringBuilder stringBuilder =
                new StringBuilder("Java is Code");
        StringBuilder builder = stringBuilder.replace(8, 12, "Programming language");

        System.out.println(builder.toString());
}
}

输出:

使用StringBuilder replace()方法

总结

在本文中,您已经学习了如何替换和删除字符以从字符串中删除子字符串。提供的技术包括StringBuilder delete()和replace()方法的使用,以及字符串replace()、replaceFirst()和replaceAll()函数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Java 示例