答案是使用equals()方法比较字符串内容,因为==比较的是引用地址。应避免使用==判断字符串值,推荐用equals()或equalsIgnoreCase()处理大小写,注意null值防护,如"str".equals(input)防止空指针异常。

在Java中比较两个字符串是否相等,不能使用==运算符直接判断,因为==比较的是对象的引用地址,而不是字符串的内容。正确的方式是使用equals()方法来比较字符串内容。
equals() 是 String 类提供的方法,用于判断两个字符串对象的内容是否完全相同。
equals()
equalsIgnoreCase() 方法示例代码:
  String str1 = "Hello";
  String str2 = "Hello";
  String str3 = new String("Hello");
  String str4 = "hello";
  System.out.println(str1.equals(str2)); // true
  System.out.println(str1.equals(str3)); // true
  System.out.println(str1.equalsIgnoreCase(str4)); // true
  System.out.println(str1.equals(str4)); // false(大小写不同)
== 只有在两个变量指向同一个字符串对象时才返回 true。由于 Java 的字符串常量池机制,某些情况下看似相同的字符串用 == 可能为 true,但这不可靠,尤其在使用 new String() 创建对象时。
立即学习“Java免费学习笔记(深入)”;
例如:
  String a = "abc";
  String b = "abc";
  System.out.println(a == b); // true(都指向常量池中的同一对象)
  String c = new String("abc");
  String d = new String("abc");
  System.out.println(c == d); // false(不同对象,地址不同)
调用 equals() 的字符串如果为 null,会抛出 NullPointerException。为避免异常,可以先判断 null,或把已知非 null 的字符串放在前面调用 equals。
推荐写法:
  String input = getUserInput();
  if ("expected".equals(input)) {
    System.out.println("输入正确");
  }
这种写法即使 input 为 null,也不会报错,返回 false。
equals(),别用 ==,注意 null 就行。以上就是如何在Java中比较两个字符串是否相等的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号