通常来说,我们判断字符串是否相等是判断其字面量是否相同,如果用“==”来判断两个字符串是否相同,那么比较的实际上是两个字符串的存储地址(即内存地址)是否相同,因为字符串String是引用数据类型而不是基本数据类型。下面展示两种情况:

String str1 = "Hello World";
String str2 = "Hello World";
System.out.println(str1 == str2);

最后的输出结果为true,因为Java编译器能够让字符串共享,实际两个字符串变量都指向内存中同一个"Hello world"。

Scanner in = new Scanner(System.in);
String str1 = in.next();
if(str1 == "string")System.out.print("true");
elseSystem.out.print("false");

在控制台中即便输入字符串“string”也不会输出true,因为比较的是地址值,而不是具体内容。

那么如何比较字符串是否相同呢?可以使用String类中的方法进行比较

  • boolean equals(Object other)    比较字符串与other是否相等,相等返回true,否则返回false
  • boolean equalsIgnoreCase(String other)    忽略大小写比较两个字符串是否相等,相等返回true,否则返回false
//输出true
String str1 = "Hello World";
String str2 = "Hello World";
System.out.println(str1.equals(str2));//输出true
String str3 = "HELLO";
String str4 = "hello";
System.out.println(str3.equalsIgnoreCase(str4));

Java中为什么不能用“==”判断字符串是否相等相关推荐

  1. 税收java_String 类中的 isEmpty() 是判断字符串是否为空的,如果为空返回 true ,不为空返回 false 。 (1.0分)_学小易找答案...

    [填空题]Claudia möchte sich mit ihrem Kollegen Tobias treffen:  Tobias, ich möchte gern mit ins Kino g ...

  2. 在Java中,如何使一个字符串的首字母变为大写

    问题:在Java中,如何使一个字符串的首字母变为大写 我使用Java去获取用户的字符串输入.我尝试使他们输入的第一个字符大写 我尝试这样: String name;BufferedReader br ...

  3. 在Java中使用标准输入输出设备进行字符串,整数浮点数等 的输入输出操作

    在Java中使用标准输入输出设备进行字符串.整数浮点数等的输入输出操作 在Java语言中进行标准输入输出(键盘显示器)需要通过创建输入输出流对象的方式进行,一般情况下我们可以使用 BufferedRe ...

  4. Java中如何使用“点”分割字符串呢?

    下文笔者讲述Java代码中使用点分割字符串的方法分享,如下所示: 实现思路: 使用 字符串对象.split("\\.") 使用点分割字符串的示例分享 package com.jav ...

  5. JAVA语言:利用递归方法判断字符串是否为回文

    java练习:利用递归方法判断字符串是否为回文(java程序语言设计课后习题4.21) 回文:字符串正向输出和逆向输出结果相同 ,如12321 源代码如下: import java.util.Scan ...

  6. 在java中哈希表判断某个元素是否存在的原理

    在java中哈希表判断某个元素是否存在的原理 在本文中我们将介绍,在hash表中如何判断两个元素是否重复. 首先,我们们需要知么hash表是什么? Hash表由称为离散表,是由数组加链表实现的一种数据 ...

  7. java中String值为空字符串与null的判断方法

    Java空字符串与null的区别 1.类型        null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null.        ""表 ...

  8. 2021-12-27 Java String contains() 方法用于判断字符串中是否包含指定的字符或字符串。用.toLowerCase().contains忽视大小写。

    一.public boolean contains(CharSequence chars) contains() 方法用于判断字符串中是否包含指定的字符或字符串. 二.返回值        如果包含指 ...

  9. java 以什么开头_判断字符串以什么开头

    Java 判断字符串是否以什么开头 可以使用 startsWith() 判断,例如: String str = "Hello World.";// 判断是否以 Hello 开始Sy ...

最新文章

  1. Java 程序代码优化方法
  2. 在QT中使用同步阻塞式HTTP请求的方法
  3. 关于Mysql模糊查询下划线的问题
  4. TFS配置过程中的错误
  5. SpringCloud Greenwich版本集成OAuth2.0
  6. 论文翻译:(BMVC 2022)You Only Need 90K Parameters to Adapt Light:a Light Weight Transformer
  7. bzoj4199品酒大会
  8. 〖Python 数据库开发实战 - MySQL篇㉒〗- 子查询的语法规则
  9. 无线攻击入侵工具清单
  10. A pseudo attribute name is expected.解决方法
  11. Ubuntu-的前世今生
  12. Opencv minMaxLoc与minMaxIdx的区别。
  13. 《线性代数及其应用》阅读笔记:一 1.5 线性方程组的解集
  14. syn flood 攻击 c 语言源代码,以太网模拟syn flood攻击
  15. 激活函数、损失函数和优化函数的比较
  16. 台式计算机开机不自检不起动,台式电脑启动不了怎么办 电脑启动失败需要怎么排查...
  17. ibm刀片服务器 系统初始密码,IBM刀片服务器管理模块恢复出厂默认值实战
  18. nitro库_Nitro的故事,专业的翻译服务,可帮助开发人员进行本地化和多语言支持...
  19. 进销存:利用SRM满足客户体验与需求
  20. python本地音乐播放器+附源文件地址

热门文章

  1. 计算机进程同步实验观察结果记录表,进程同步实验报告.doc
  2. 学术期刊的概念、分类,计算机类主要期刊索引和机构
  3. 快速连接github(修改hosts文件)
  4. 31个爱情原则让你受用终生
  5. 用Python实现地理信息出图(含比例尺、指北针、图例)
  6. SCI/ISTP和EI论文检索号IDS number和收录号查询方法
  7. Python等编程语言学习资料分享
  8. 模式识别与机器学习作业——SVM(Python实现)
  9. 矛盾依旧脱欧协议过关难 欧盟认为英将延后脱欧
  10. 使用es6--对象数组的多种去重方式