从 Java 字符串中移除数字值

JavaJavaBeginner
立即练习

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

介绍

在本实验中,你将学习如何在 Java 中从字符串中移除数字值。Java 中的字符串可以包含字母数字字符和特殊符号。因此,有时需要过滤字符串以仅获取字母。在本实验中,我们将使用 replaceAll() 方法,该方法接受两个参数:一个用于过滤字符串的正则表达式和一个替换字符串。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) 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(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java/BasicSyntaxGroup -.-> java/output("Output") java/StringManipulationGroup -.-> java/strings("Strings") java/StringManipulationGroup -.-> java/regex("RegEx") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/class_methods("Class Methods") 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-117447{{"从 Java 字符串中移除数字值"}} java/strings -.-> lab-117447{{"从 Java 字符串中移除数字值"}} java/regex -.-> lab-117447{{"从 Java 字符串中移除数字值"}} java/class_methods -.-> lab-117447{{"从 Java 字符串中移除数字值"}} java/files -.-> lab-117447{{"从 Java 字符串中移除数字值"}} java/create_write_files -.-> lab-117447{{"从 Java 字符串中移除数字值"}} java/working -.-> lab-117447{{"从 Java 字符串中移除数字值"}} java/string_methods -.-> lab-117447{{"从 Java 字符串中移除数字值"}} end

创建一个新的 Java 文件

导航到 ~/project 目录,并使用以下命令创建一个新的 Java 文件:

touch RemoveNumericValues.java

定义 main() 方法

在文本编辑器中打开 RemoveNumericValues.java 文件,并按如下方式定义 main() 方法:

public class RemoveNumericValues {
    public static void main(String[] args) {
        String str = "House123sector4";
        System.out.println("Original String: " + str);
    }
}

使用正则表达式移除数字值

在这一步中,我们将使用正则表达式(Regex)从字符串中移除数字值。

public class RemoveNumericValues {
    public static void main(String[] args) {
        String str = "House123sector4";
        System.out.println("Original String: " + str);

        str = str.replaceAll("[^A-Za-z]", "");
        System.out.println("String with only Alphabets: " + str);
    }
}

在上述代码中,我们使用了 replaceAll() 方法来替换字符串 str 中除字母以外的所有字符。正则表达式 [A-Za-z] 将匹配从 A 到 Z 和 a 到 z 的所有字符。

使用正则表达式移除数字

在这一步中,我们将使用正则表达式(Regex)从字符串中移除数字。

public class RemoveNumericValues {
    public static void main(String[] args) {
        String str = "House123sector4";
        System.out.println("Original String: " + str);

        str = str.replaceAll("\\d", "");
        System.out.println("String with only Alphabets: " + str);
    }
}

在上述代码中,我们使用了 replaceAll() 方法来替换字符串 str 中的所有数字。正则表达式 \\d 将匹配字符串中的所有数字。

使用正则表达式移除数字(替代方法)

在这一步中,我们将使用另一种正则表达式(Regex)从字符串中移除数字。

public class RemoveNumericValues {
    public static void main(String[] args) {
        String str = "House123sector4";
        System.out.println("Original String: " + str);

        str = str.replaceAll("[0-9]", "");
        System.out.println("String with only Alphabets: " + str);
    }
}

在上述代码中,我们使用了 replaceAll() 方法来替换字符串 str 中的所有数字。正则表达式 [0-9] 将匹配字符串中的所有数字。

编译并运行代码

保存对 RemoveNumericValues.java 文件的更改,打开终端,导航到项目目录并输入以下命令以编译代码:

javac RemoveNumericValues.java

代码成功编译后,输入以下命令以运行代码:

java RemoveNumericValues

代码的输出将显示在终端上。

修改输入字符串

为了在不同的输入字符串上测试代码,可以将 str 字符串修改为你选择的任意值。

public class RemoveNumericValues {
    public static void main(String[] args) {
        String str = "Hello%&$3World";
        System.out.println("Original String: " + str);

        str = str.replaceAll("[^A-Za-z]", "");
        System.out.println("String with only Alphabets: " + str);
    }
}

测试替代方法

修改之前的代码版本以测试替代方法,如下所示:

public class RemoveNumericValues {
    public static void main(String[] args) {
        String str = "Hello%&$3World";
        System.out.println("Original String: " + str);

        str = str.replaceAll("[0-9]", "");
        System.out.println("String with only Alphabets: " + str);
    }
}

测试第二种方法

修改之前的代码版本以测试第二种方法,如下所示:

public class RemoveNumericValues {
    public static void main(String[] args) {
        String str = "Hello%&$3World";
        System.out.println("Original String: " + str);

        str = str.replaceAll("\\d", "");
        System.out.println("String with only Alphabets: " + str);
    }
}

总结

在本实验中,我们学习了如何在 Java 中从字符串中移除数字值。我们使用了 replaceAll() 方法以及不同的正则表达式(Regex)来过滤字符串并仅保留字母。我们还学习了如何通过不同的输入字符串来测试代码。