java简单说明equals方法、equalsignorecase方法以及“==”运算符在比较两个字符串对象时的区别。
时间: 2024-01-12 09:05:29 浏览: 72
在Java中,字符串是一种特殊的对象类型,因此比较字符串对象时需要注意使用的方法和运算符。
equals方法是用于比较两个字符串对象的内容是否相等的方法。它是一个方法,而不是运算符,因此需要使用对象调用该方法进行比较。equals方法比较的是字符串对象的内容,而不是对象的引用。例如:
```
String str1 = new String("hello");
String str2 = new String("hello");
if (str1.equals(str2)) {
System.out.println("str1 equals str2");
}
```
上述代码中,因为str1和str2的内容相同,所以调用equals方法时返回true,输出"str1 equals str2"。
equalsIgnoreCase方法也是用于比较两个字符串对象的内容是否相等的方法,与equals方法不同的是,它会忽略字符串的大小写。例如:
```
String str1 = "Hello";
String str2 = "hello";
if (str1.equalsIgnoreCase(str2)) {
System.out.println("str1 equals str2 (ignore case)");
}
```
上述代码中,因为str1和str2的内容相同且都是忽略大小写的,所以调用equalsIgnoreCase方法时返回true,输出"str1 equals str2 (ignore case)"。
"=="运算符是用于比较两个字符串对象的引用是否相等的运算符。如果两个字符串对象的引用指向同一个对象,则返回true,否则返回false。例如:
```
String str1 = new String("hello");
String str2 = new String("hello");
if (str1 == str2) {
System.out.println("str1 == str2");
}
```
上述代码中,虽然str1和str2的内容相同,但它们是两个不同的对象,因此调用"=="运算符时返回false。但是,如果两个字符串对象都是使用字符串字面量创建的,则它们可能会指向同一个对象,例如:
```
String str1 = "hello";
String str2 = "hello";
if (str1 == str2) {
System.out.println("str1 == str2");
}
```
上述代码中,因为str1和str2都是使用字符串字面量创建的,它们可能会指向同一个对象,因此调用"=="运算符时返回true。但是,这种情况并不总是发生,因此不应该依赖于这种行为。通常情况下,应该使用equals方法来比较字符串对象的内容是否相同。
阅读全文