介绍
在这个实验中,你将学习如何在 Java 中使用 startsWith() 方法来检查一个字符串是否以特定的前缀开头。这个实践练习将指导你应用 startsWith() 方法,在不同的情况下测试其行为,并理解它如何处理 null 和空前缀。在这个实验结束时,你将熟练掌握这一基本的字符串操作技术。
应用 startsWith() 方法检查前缀
在这一步中,你将学习如何在 Java 中使用 startsWith() 方法来检查一个字符串是否以特定的前缀开头。当你需要根据文本的开头来处理文本时,这是一个常见的操作。
startsWith() 方法是 Java 中 String 类的一部分。它接受一个 String 类型的参数,该参数就是你要检查的前缀。如果字符串以指定的前缀开头,该方法返回 true,否则返回 false。
让我们创建一个新的 Java 文件来练习使用 startsWith() 方法。
打开 WebIDE 左侧的文件资源管理器。
在
~/project目录下右键单击,然后选择“新建文件”。将新文件命名为
PrefixChecker.java。在编辑器中打开
PrefixChecker.java,并粘贴以下代码:public class PrefixChecker { public static void main(String[] args) { String text = "Hello, Java!"; String prefix = "Hello"; boolean startsWithPrefix = text.startsWith(prefix); System.out.println("Does the text start with '" + prefix + "'? " + startsWithPrefix); } }在这段代码中:
- 我们声明了一个
String类型的变量text,并将其初始化为 "Hello, Java!"。 - 我们声明了另一个
String类型的变量prefix,并将其初始化为 "Hello"。 - 我们在
text字符串上调用startsWith()方法,并将prefix作为参数传递。结果(true或false)存储在boolean类型的变量startsWithPrefix中。 - 最后,我们将结果打印到控制台。
- 我们声明了一个
保存文件(Ctrl+S 或 Cmd+S)。
现在,让我们编译并运行这个程序。打开 WebIDE 底部的终端。确保你位于
~/project目录下。使用
javac命令编译 Java 文件:javac PrefixChecker.java如果没有错误,这个命令将在
~/project目录下创建一个PrefixChecker.class文件。使用
java命令运行编译后的程序:java PrefixChecker你应该会看到以下输出:
Does the text start with 'Hello'? true
这个输出证实了字符串 "Hello, Java!" 确实以 "Hello" 为前缀。
使用不同大小写测试前缀
在上一步中,你成功使用 startsWith() 方法检查了前缀。现在,让我们探究 startsWith() 方法如何处理不同大小写(大写字母和小写字母)的情况。
默认情况下,startsWith() 方法区分大小写。这意味着 "Hello" 被视为与 "hello" 或 "HELLO" 不同。让我们修改 PrefixChecker.java 文件来实际观察这种情况。
在 WebIDE 编辑器中打开
PrefixChecker.java文件。修改
main方法以包含不同大小写的检查。将现有的main方法替换为以下代码:public class PrefixChecker { public static void main(String[] args) { String text = "Hello, Java!"; String prefix1 = "Hello"; String prefix2 = "hello"; String prefix3 = "HELLO"; boolean startsWithPrefix1 = text.startsWith(prefix1); boolean startsWithPrefix2 = text.startsWith(prefix2); boolean startsWithPrefix3 = text.startsWith(prefix3); System.out.println("Does the text start with '" + prefix1 + "'? " + startsWithPrefix1); System.out.println("Does the text start with '" + prefix2 + "'? " + startsWithPrefix2); System.out.println("Does the text start with '" + prefix3 + "'? " + startsWithPrefix3); } }在这段更新后的代码中,我们正在检查
text字符串是否以 "Hello"、"hello" 和 "HELLO" 开头。保存文件(Ctrl+S 或 Cmd+S)。
打开终端并确保你位于
~/project目录下。编译修改后的 Java 文件:
javac PrefixChecker.java运行编译后的程序:
java PrefixChecker你应该会看到以下输出:
Does the text start with 'Hello'? true Does the text start with 'hello'? false Does the text start with 'HELLO'? false
这个输出清楚地表明,startsWith() 方法仅对前缀 "Hello"(与原始字符串的大小写匹配)返回 true,而对 "hello" 和 "HELLO" 返回 false。这证明了 startsWith() 方法区分大小写。
如果你需要进行不区分大小写的前缀检查,通常会在使用 startsWith() 方法之前,将原始字符串和前缀都转换为相同的大小写(小写或大写)。例如,你可以使用 text.toLowerCase().startsWith(prefix.toLowerCase())。我们在这里不会实现这一点,但这是一个值得记住的有用技巧。
检查空值和空前缀
在这一步中,我们将研究当 startsWith() 方法的前缀为 null 或空字符串("")时,该方法的行为。理解这些边界情况对于编写健壮的代码至关重要。
在 WebIDE 编辑器中打开
PrefixChecker.java文件。修改
main方法,以测试null前缀和空字符串前缀的情况。将现有的main方法替换为以下代码:public class PrefixChecker { public static void main(String[] args) { String text = "Hello, Java!"; String prefixNull = null; String prefixEmpty = ""; // Check with a null prefix try { boolean startsWithPrefixNull = text.startsWith(prefixNull); System.out.println("Does the text start with null? " + startsWithPrefixNull); } catch (NullPointerException e) { System.out.println("Checking with null prefix resulted in: " + e); } // Check with an empty prefix boolean startsWithPrefixEmpty = text.startsWith(prefixEmpty); System.out.println("Does the text start with an empty string? " + startsWithPrefixEmpty); } }在这段更新后的代码中:
- 我们声明了
prefixNull并将其赋值为null。 - 我们声明了
prefixEmpty并将其赋值为空字符串""。 - 在使用
prefixNull进行检查时,我们使用了try-catch块。这是因为在 Java 中,尝试对null对象调用方法会导致NullPointerException。我们捕获这个异常以观察会发生什么。 - 我们使用空字符串前缀
prefixEmpty进行检查。
- 我们声明了
保存文件(Ctrl+S 或 Cmd+S)。
打开终端并确保你位于
~/project目录下。编译修改后的 Java 文件:
javac PrefixChecker.java运行编译后的程序:
java PrefixChecker你应该会看到以下输出:
Checking with null prefix resulted in: java.lang.NullPointerException Does the text start with an empty string? true
这个输出展示了两个重要的点:
- 将
null作为前缀传递给startsWith()方法会导致NullPointerException。这就是为什么在对可能为null的值调用方法之前,处理这些值至关重要。 - 将空字符串(
"")作为前缀传递给startsWith()方法会返回true。这是因为任何字符串都可以被认为是以空字符串开头的。
理解 startsWith() 方法如何处理 null 和空字符串对于防止错误并在你的 Java 程序中编写正确的逻辑非常重要。
总结
在本次实验中,你学习了如何在 Java 中使用 startsWith() 方法来检查字符串是否以特定前缀开头。你通过创建一个简单的 Java 程序、编译并运行它以查看输出,练习了应用此方法。这项基础技能对于 Java 编程中的各种字符串操作任务至关重要。



