字符串比较
本课属于 Coddy Java 学习旅程的“基础知识”单元。第 70 课,共 73 课。
在 Java 中,比较字符串不像比较整数或字符等基本数据类型那么直接。你不能使用 == 运算符来比较字符串是否相等,因为字符串是对象,而 == 比较的是它们的内存地址,而不是内容。相反,你需要使用 String 类提供的特定方法来比较字符串中的实际字符。
以下是字符串比较的主要方法:
equals(Object other):将字符串与另一个对象(通常是另一个字符串)进行比较。如果两个字符串的字符相同且顺序相同,则返回true,否则返回false。此方法区分大小写。
equalsIgnoreCase(String other):与equals类似,但不区分大小写。如果两个字符串包含相同的字符,无论大小写如何,都返回true;否则返回false。
compareTo(String other):按字典顺序(根据 Unicode 值)比较两个字符串。如果两个字符串相等,则返回 0;如果第一个字符串小于第二个字符串,则返回负数;如果第一个字符串大于第二个字符串,则返回正数。此方法区分大小写。
compareToIgnoreCase(String other):与compareTo类似,但不区分大小写。
下面是一个示例:
String str1 = "hello";
String str2 = "hello";
String str3 = "HELLO";
String str4 = "world";
boolean eq1 = str1.equals(str2); // true
boolean eq2 = str1.equals(str3); // false
boolean eq3 = str1.equalsIgnoreCase(str3); // true
int cmp1 = str1.compareTo(str2); // 0
int cmp2 = str1.compareTo(str4); // 负值
int cmp3 = str4.compareTo(str1); // 正值
int cmp4 = str1.compareToIgnoreCase(str3); // 0挑战
简单创建一个名为 compareStrings 的方法,它接收两个字符串作为输入,并执行以下比较:
- 使用
equals检查两个字符串是否相等,并打印结果。 - 使用
equalsIgnoreCase检查两个字符串是否相等(忽略大小写),并打印结果。 - 使用
compareTo比较两个字符串,并打印结果。 - 使用
compareToIgnoreCase比较两个字符串(忽略大小写),并打印结果。
输入字符串 HELLO 和 hello 时的输出示例:
HELLO equals hello: false
HELLO equalsIgnoreCase hello: true
HELLO compareTo hello: -32
HELLO compareToIgnoreCase hello: 0亲手试试
import java.util.Scanner;
public class Main {
public static void compareStrings(String str1, String str2) {
// 在这里编写你的代码
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str1 = scanner.nextLine();
String str2 = scanner.nextLine();
compareStrings(str1, str2);
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Java 在线编译器