Java中为什么不能用“==”判断字符串是否相等
通常来说,我们判断字符串是否相等是判断其字面量是否相同,如果用“==”来判断两个字符串是否相同,那么比较的实际上是两个字符串的存储地址(即内存地址)是否相同,因为字符串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中为什么不能用“==”判断字符串是否相等相关推荐
- 税收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 ...
- 在Java中,如何使一个字符串的首字母变为大写
问题:在Java中,如何使一个字符串的首字母变为大写 我使用Java去获取用户的字符串输入.我尝试使他们输入的第一个字符大写 我尝试这样: String name;BufferedReader br ...
- 在Java中使用标准输入输出设备进行字符串,整数浮点数等 的输入输出操作
在Java中使用标准输入输出设备进行字符串.整数浮点数等的输入输出操作 在Java语言中进行标准输入输出(键盘显示器)需要通过创建输入输出流对象的方式进行,一般情况下我们可以使用 BufferedRe ...
- Java中如何使用“点”分割字符串呢?
下文笔者讲述Java代码中使用点分割字符串的方法分享,如下所示: 实现思路: 使用 字符串对象.split("\\.") 使用点分割字符串的示例分享 package com.jav ...
- JAVA语言:利用递归方法判断字符串是否为回文
java练习:利用递归方法判断字符串是否为回文(java程序语言设计课后习题4.21) 回文:字符串正向输出和逆向输出结果相同 ,如12321 源代码如下: import java.util.Scan ...
- 在java中哈希表判断某个元素是否存在的原理
在java中哈希表判断某个元素是否存在的原理 在本文中我们将介绍,在hash表中如何判断两个元素是否重复. 首先,我们们需要知么hash表是什么? Hash表由称为离散表,是由数组加链表实现的一种数据 ...
- java中String值为空字符串与null的判断方法
Java空字符串与null的区别 1.类型 null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null. ""表 ...
- 2021-12-27 Java String contains() 方法用于判断字符串中是否包含指定的字符或字符串。用.toLowerCase().contains忽视大小写。
一.public boolean contains(CharSequence chars) contains() 方法用于判断字符串中是否包含指定的字符或字符串. 二.返回值 如果包含指 ...
- java 以什么开头_判断字符串以什么开头
Java 判断字符串是否以什么开头 可以使用 startsWith() 判断,例如: String str = "Hello World.";// 判断是否以 Hello 开始Sy ...
最新文章
- Go程序崩溃现场应该如何保留?
- 36 多线程之线程池pool
- unittest中的测试固件
- How to Map Distinct Value Types Using Java Generics--reference
- github 头像生成 java_Java 如何根据头像地址生成圆形的头像?
- 虚拟机和linux的安装
- 如何让百度快速收录文章
- 哈夫曼树 (最优二叉树)
- ios html特殊符号转化,iOS HTML特殊字符转译
- 开发监控云组态软件的组成
- MS Office VBA(包括Excel VBA、Word VBA、Access VBA等)资料下载汇总
- java 存根_存根键值存储
- 如何处理WordPress上传资源报HTTP错误
- 疑为灵异现象不可思议的透明液晶揭秘
- 【Solr】之使用结巴分词模拟搜索商品1
- 偏微分方程的类型及求解(二)(备份草稿)
- R.layout是什么?
- ORACLE基本使用
- Unix学习记录(一)
- 联想+android电视,骁龙跨界 首款Android 4.0联想电视上市
热门文章
- js qs序列化数据 npmi qs --save
- TS之namespace与module
- Greenplum数据库源码学习——FTS简介
- 知道创宇研发技能列表v3.0
- 1411: 喜闻乐见的a+b(20进制)
- 《俊红的数据分析之路》笔记
- 流媒体分析之rtmp协议srs服务器数据收发
- Qlik Sense - 根据配置的记录,实现自动抽取源DB表/视图
- 高效能管理之要事第一 时间管理表格
- java中的 |=(位或运算符)、=(位与运算符)、^=(位异或运算)、~=(位非运算符)