通常来说,我们判断字符串是否相等是判断其字面量是否相同,如果用“==”来判断两个字符串是否相同,那么比较的实际上是两个字符串的存储地址(即内存地址)是否相同,因为字符串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. Go程序崩溃现场应该如何保留?
  2. 36 多线程之线程池pool
  3. unittest中的测试固件
  4. How to Map Distinct Value Types Using Java Generics--reference
  5. github 头像生成 java_Java 如何根据头像地址生成圆形的头像?
  6. 虚拟机和linux的安装
  7. 如何让百度快速收录文章
  8. 哈夫曼树 (最优二叉树)
  9. ios html特殊符号转化,iOS HTML特殊字符转译
  10. 开发监控云组态软件的组成
  11. MS Office VBA(包括Excel VBA、Word VBA、Access VBA等)资料下载汇总
  12. java 存根_存根键值存储
  13. 如何处理WordPress上传资源报HTTP错误
  14. 疑为灵异现象不可思议的透明液晶揭秘
  15. 【Solr】之使用结巴分词模拟搜索商品1
  16. 偏微分方程的类型及求解(二)(备份草稿)
  17. R.layout是什么?
  18. ORACLE基本使用
  19. Unix学习记录(一)
  20. 联想+android电视,骁龙跨界 首款Android 4.0联想电视上市

热门文章

  1. js qs序列化数据 npmi qs --save
  2. TS之namespace与module
  3. Greenplum数据库源码学习——FTS简介
  4. 知道创宇研发技能列表v3.0
  5. 1411: 喜闻乐见的a+b(20进制)
  6. 《俊红的数据分析之路》笔记
  7. 流媒体分析之rtmp协议srs服务器数据收发
  8. Qlik Sense - 根据配置的记录,实现自动抽取源DB表/视图
  9. 高效能管理之要事第一 时间管理表格
  10. java中的 |=(位或运算符)、=(位与运算符)、^=(位异或运算)、~=(位非运算符)