java里字符串相等
时间: 2024-12-26 19:24:20 浏览: 0
### Java 字符串相等比较
在 Java 中,`==` 和 `equals()` 是两种用于字符串比较的方法,但二者有着本质的不同。
#### 使用 `==`
`==` 比较的是两个字符串对象的内存地址是否相同,即判断它们是否是同一个对象[^1]。这意味着即使两个不同的字符串变量包含了相同的字符序列,如果它们指向不同位置的对象,则通过 `==` 返回的结果将是 `false`。
```java
String a = "hello";
String b = new String("hello");
System.out.println(a == b); // 输出 false, 因为a和b不是同一对象实例
```
#### 使用 `equals()`
相比之下,`equals()` 方法会逐个对比字符串中的每一个字符来确定这两个字符串的内容是否完全一致[^2]。这使得它成为更可靠的选择,在大多数情况下应该优先考虑使用此方法来进行逻辑上的字符串内容匹配:
```java
String c = "world";
String d = new String("world");
System.out.println(c.equals(d)); // 输出 true, 尽管c和d是不同对象但是内容一样
```
为了展示这两种方式的效果差异,下面给出一段完整的代码示例[^3]:
```java
import java.util.Scanner;
public class StrTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入第一个字符串: ");
String s = scanner.nextLine();
System.out.print("请输入第二个字符串: ");
String s1 = scanner.nextLine();
System.out.println("获取的第一个字符串:" + s);
System.out.println("获取的第二个字符串:" + s1);
System.out.println("使用 == 比较的结果: " + (s == s1));
System.out.println("使用 equals 比较的结果: " + s.equals(s1));
scanner.close();
}
}
```
这段程序允许用户输入两个字符串并分别展示了采用 `==` 及 `equals()` 的比较结果。
阅读全文