Java 字符串比较2025年3月22日 | 阅读 5 分钟 字符串比较是 Java 编程的关键组成部分,广泛用于引用匹配、排序和身份验证。在本节中,我们将讨论比较 Java 中字符串的各种方法。 我们可以根据内容和引用来比较 Java 中的字符串。 ![]() 字符串比较用于身份验证(通过 equals() 方法)、排序(通过 compareTo() 方法)、引用匹配(通过 == 运算符)等。 Java 中有三种比较字符串的方法
1) 使用 equals() 方法String 类的 equals() 方法比较字符串的原始内容。它比较字符串的值是否相等。String 类提供了以下两种方法:此外,equalsIgnoreCase() 方法执行不区分大小写的比较。 String 类提供了以下两种方法
![]() StringComparisonUsingEqualsMethod.java 输出 true true false 说明 S1 和 S2 指向相同的字符串池对象,因为它们是字符串字面量。因此,s1.equals(s2) 返回 true。尽管 S3 是使用 new 关键字创建的,但 S1 和 S3 的内容相同。由于 equals() 方法只比较内容,所以 s1.equals(s3) 返回 true;然而,s1.equals(s4) 返回 false,因为 s1 和 s4 的内容不同。 在上面的程序中,使用了String类的equals()方法。如果 String 对象匹配且两个字符串的大小写相同,则equals()方法返回 true。equalsIgnoreCase()方法返回 true,而不管字符串的大小写。 StringComparisonUsingequalsIgnoreCase.java 输出 false true 说明 有两个字符串 s1 和 s2,它们的大小写不同(“Ram”和“rAm”)。 使用 equals() 函数比较 s1 和 s2。由于大小写不同,此方法会区分大小写地进行比较并返回 false。 使用 equalsIgnoreCase() 函数对字符串 s1 和 s2 进行比较。由于它平等对待内容并忽略大小写差异,因此此函数返回 true。 2) 使用 == 运算符在 Java 中,== 运算符比较的是引用而不是值。 ![]() StringCompare.java 输出 true false 3) 使用 compareTo() 方法进行字符串比较String 类的 compareTo() 方法按字典顺序比较值,并返回一个整数值,该值描述第一个字符串是否小于、等于或大于第二个字符串。 假设 s1 和 s2 是两个 String 对象。如果
StringComparisonUsingComapreto.java 输出 0 1 -1 说明 str1 和 str2 的内容相同——“Sachin”,而 str3 包含单词“Ratan”。 4) 使用 startsWith() 和 endsWith() 方法如果一个字符串分别以某个前缀开头和以某个后缀结尾,可以使用 startsWith() 和 endsWith() 方法来确定。 输出 true true 说明 如果字符串以给定前缀开头,则 startsWith("Hello") 返回 true。 如果字符串确实以指定的后缀结尾,则 endsWith("World!") 返回 true。 结论总而言之,compareTo() 函数提供了一种根据字典顺序比较字符串的方法。通过理解返回值(0、正数或负数),开发人员可以确定两个字符串之间的排序关系。示例展示了该方法在各种字符串输入下的行为。 Java 中的字符串比较 MCQ1. 在 Java 中比较字符串时,以下关于 equals() 方法和 == 运算符的说法哪个是正确的?
答案:C) 解释: equals() 方法用于比较两个字符串对象内容的相等性,而 == 运算符检查两个引用是否指向内存中的同一个对象。 2. 以下代码的执行结果是什么?
答案:C) 解释: s1 == s2 为 false,因为 s1 和 s2 指向不同的对象。s1.equals(s2) 为 true,因为它们的内容相同。s1 == s3 为 true,因为 s1 和 s3 都指向字符串池中的同一个字符串字面量。 3. 以下代码的输出是什么?
答案:B) 解释: compareTo() 方法按字典顺序比较字符串。由于大写 'J' 的 Unicode 值小于小写 'j',因此 s1.compareTo(s2) 返回一个正整数。 4. 在 Java 中,应该使用哪种方法来执行不区分大小写的字符串比较?
答案:B) 解释: equalsIgnoreCase() 方法比较两个字符串,忽略大小写的差异。这适用于不区分大小写的相等性检查。 5. 下列代码的输出是什么?
答案:B) 解释: s1.equals(s2) 为 false,因为大小写不同。s1.equalsIgnoreCase(s2) 为 true,因为它忽略了大小写的差异。s1 == s3 为 false,因为 s1 和 s3 指向不同的对象,尽管它们的内容相同。 下一个主题Java 中的字符串连接 ← 上一篇 下一篇 → |
我们请求您订阅我们的新闻通讯以获取最新更新。