Java 中的子字符串替换

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将学习如何使用 Java 编程语言替换 String 中的子字符串。我们将使用 Java 中提供的不同方法来替换单个/多个字符或子字符串。最后,我们将清楚地了解如何在 Java 代码中实现这些方法。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("`Java`")) -.-> java/BasicSyntaxGroup(["`Basic Syntax`"]) java(("`Java`")) -.-> java/StringManipulationGroup(["`String Manipulation`"]) java(("`Java`")) -.-> java/FileandIOManagementGroup(["`File and I/O Management`"]) java(("`Java`")) -.-> java/ConcurrentandNetworkProgrammingGroup(["`Concurrent and Network Programming`"]) java(("`Java`")) -.-> java/SystemandDataProcessingGroup(["`System and Data Processing`"]) java/BasicSyntaxGroup -.-> java/output("`Output`") java/StringManipulationGroup -.-> java/strings("`Strings`") java/StringManipulationGroup -.-> java/stringbuffer_stringbuilder("`StringBuffer/StringBuilder`") java/StringManipulationGroup -.-> java/regex("`RegEx`") java/FileandIOManagementGroup -.-> java/files("`Files`") java/FileandIOManagementGroup -.-> java/create_write_files("`Create/Write Files`") java/ConcurrentandNetworkProgrammingGroup -.-> java/working("`Working`") java/SystemandDataProcessingGroup -.-> java/string_methods("`String Methods`") subgraph Lab Skills java/output -.-> lab-117449{{"`Java 中的子字符串替换`"}} java/strings -.-> lab-117449{{"`Java 中的子字符串替换`"}} java/stringbuffer_stringbuilder -.-> lab-117449{{"`Java 中的子字符串替换`"}} java/regex -.-> lab-117449{{"`Java 中的子字符串替换`"}} java/files -.-> lab-117449{{"`Java 中的子字符串替换`"}} java/create_write_files -.-> lab-117449{{"`Java 中的子字符串替换`"}} java/working -.-> lab-117449{{"`Java 中的子字符串替换`"}} java/string_methods -.-> lab-117449{{"`Java 中的子字符串替换`"}} end

创建一个 Java 文件

让我们创建一个 Java 文件来编写和执行代码。打开终端并导航到项目目录。使用以下命令创建一个名为 SubstringReplace.java 的新文件:

touch SubstringReplace.java

在你喜欢的文本编辑器中打开该文件。

替换单个字符

我们可以使用 replace() 方法来替换字符串中单个字符的出现。以下是一个示例:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "hello world!";
        System.out.println("Original String: " + originalString);
        // 替换单个字符
        String newString = originalString.replace('l', 'L');
        System.out.println("New String: " + newString);
    }
}

在上面的示例中,我们将原始字符串中的小写字符 l 替换为大写字符 L

要编译并运行代码,请使用以下命令:

javac SubstringReplace.java
java SubstringReplace

这将产生以下输出:

Original String: hello world!
New String: heLLo worLd!

替换子字符串

我们可以使用 replace() 方法来将字符串中所有出现的子字符串替换为新的子字符串。以下是一个示例:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 替换子字符串
        String newString = originalString.replace("the", "a");
        System.out.println("New String: " + newString);
    }
}

在上面的示例中,我们将所有出现的子字符串 "the" 替换为子字符串 "a"。

要编译并运行代码,请使用与步骤 2 中相同的命令。

这将产生以下输出:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over a lazy dog

替换子字符串的首次出现

我们可以使用 replaceFirst() 方法来将字符串中子字符串的首次出现替换为新的子字符串。以下是一个示例:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 替换子字符串的首次出现
        String newString = originalString.replaceFirst("the", "a");
        System.out.println("New String: " + newString);
    }
}

在上面的示例中,我们将子字符串 "the" 的首次出现替换为子字符串 "a"。

要编译并运行代码,请使用与步骤 2 中相同的命令。

这将产生以下输出:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

使用正则表达式替换字符

我们可以使用正则表达式来根据模式替换字符。以下是一个示例:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 使用正则表达式替换字符
        String newString = originalString.replaceAll("[aeiou]", "");
        System.out.println("New String: " + newString);
    }
}

在上面的示例中,我们使用正则表达式从原始字符串中移除了所有元音字母。

要编译并运行代码,请使用与步骤 2 中相同的命令。

这将产生以下输出:

Original String: the quick brown fox jumps over the lazy dog
New String: th qck brwn fx jmps vr th lzy dg

使用正则表达式替换多个字符

我们可以使用正则表达式来根据模式替换多个字符。以下是一个示例:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 使用正则表达式替换多个字符
        String newString = originalString.replaceAll("[aeiouAEIOU]", "");
        System.out.println("New String: " + newString);
    }
}

在上面的示例中,我们使用正则表达式从原始字符串中移除了所有元音字母(包括小写和大写)。

要编译并运行代码,请使用与步骤 2 中相同的命令。

这将产生以下输出:

Original String: the quick brown fox jumps over the lazy dog
New String: th qck brwn fx jmps vr th lzy dg

使用正则表达式替换子字符串

我们可以使用正则表达式来根据模式替换子字符串。以下是一个示例:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 使用正则表达式替换子字符串
        String newString = originalString.replaceAll("\\w+", "a");
        System.out.println("New String: " + newString);
    }
}

在上面的示例中,我们使用正则表达式将原始字符串中的所有单词替换为字母 a

要编译并运行代码,请使用与步骤 2 中相同的命令。

这将产生以下输出:

Original String: the quick brown fox jumps over the lazy dog
New String: a a a a a a a a a

使用正则表达式替换子字符串的所有出现

我们可以使用正则表达式来根据模式替换子字符串的所有出现。以下是一个示例:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 使用正则表达式替换子字符串的所有出现
        String newString = originalString.replaceAll("the", "a");
        System.out.println("New String: " + newString);
    }
}

在上面的示例中,我们使用正则表达式将子字符串 "the" 的所有出现替换为字母 a

要编译并运行代码,请使用与步骤 2 中相同的命令。

这将产生以下输出:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over a lazy dog

使用 StringBuilder 替换子字符串

我们可以使用 StringBuilder 类以更高效的方式替换子字符串。以下是一个示例:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 使用 StringBuilder 替换子字符串
        StringBuilder stringBuilder = new StringBuilder(originalString);
        stringBuilder.replace(0, 3, "a");
        String newString = stringBuilder.toString();
        System.out.println("New String: " + newString);
    }
}

在上面的示例中,我们使用 StringBuilder 类将字符串中的前 3 个字符替换为字母 a

要编译并运行代码,请使用与步骤 2 中相同的命令。

这将产生以下输出:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

使用 StringBuffer 替换子字符串

StringBuilder 类似,我们可以使用 StringBuffer 类以更高效的方式替换子字符串。唯一的区别在于 StringBuffer 是线程安全的。以下是一个示例:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // 使用 StringBuffer 替换子字符串
        StringBuffer stringBuffer = new StringBuffer(originalString);
        stringBuffer.replace(0, 3, "a");
        String newString = stringBuffer.toString();
        System.out.println("New String: " + newString);
    }
}

在上面的示例中,我们使用 StringBuffer 类将字符串中的前 3 个字符替换为字母 a

要编译并运行代码,请使用与步骤 2 中相同的命令。

这将产生以下输出:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

总结

在本实验中,我们学习了如何使用 Java 编程语言替换 String 中的子字符串。我们讨论了 Java 中可用于替换单个/多个字符或子字符串的几种方法。我们还学习了如何使用正则表达式以及 StringBuilder/StringBuffer 类来实现更高效的子字符串替换。通过运用这些知识,你可以轻松地在 Java 程序中操作字符串。

您可能感兴趣的其他 Java 教程