java 字符串比较 == equals_java怎么比较字符串,==和equals有什么区别
String类型是Object类型,通过new操作符构建的字符串指向不同的对象。
==:是用来比较两个引用是否指向同一个对象,当引用指向同一个对象则为true,否则为false。s1和s2字符串的值虽然是相同的,但是两者是不同对象,所以==比较结果是false。
equals: String类重写了Object的equals方法
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
String类的equals方法里,如果两个String对象为同一个对象为true。如果两个String对象不是同一个对象时,则比较字符串里的字符,当字符一致时,比较的结果为true。所以s1和s2的值都为“test”,所以s1.equals(s2) 为true。
new String("test").equals("test") //true
new String("test") == "test" //false
new String("test") == new String("test") //false
"test" == "test" //true
Objects.equals("test", new String("test")) //true
java 字符串比较 == equals_java怎么比较字符串,==和equals有什么区别相关推荐
- java 字符串比较 == equals_Java在比较字符串的时候,equals 与== 完全一样呀?
首先要考虑equals跟==的作用: ==相当于是比较两个对象的引用,而equals方法是Object类中定义的,String类对其进行了重写,源代码可以看楼上的分析,首先也使用==比较了引用,之后比 ...
- java面试题,将String字符串转换成数字
2019独角兽企业重金招聘Python工程师标准>>> 题目要求:将String字符串转换成数字,不能用java自带的方法转换字符串,要求自己写一个atoi(String s),如果 ...
- java string s_Java字符串:“String s=新字符串(”愚蠢“);
Java字符串:"String s=新字符串("愚蠢"): 我是一个学习Java的C+的人.我正在阅读有效的Java,有些东西让我感到困惑.它说永远不要写这样的代码:St ...
- java字符串 大括号_string.format格式化字符串中转义大括号“{}”
今天,用Java读取配置文件占位符,使用String.Format(string format,object arg0)方法.以前只知"{0}"为索引占位符(即格式项),与参数列表 ...
- Java学习笔记(六)--字符串String类
文章目录 字符串 一.String 类 1.1 声明字符串 1.2 创建字符串 二.连接字符串 2.1 连接多个字符串 2.2 连接其他数据类型 三.获取字符串信息 3.1 获取字符串长度 3.2 字 ...
- java 字符串驻留_java String 以及字符串直接量 与 字符串驻留池 ...
结果输出 :fancydeepin这是怎么回事?不是说 String 是不可变的字符串吗?怎么这里又变了?是这样的,在这里 name 只是一个引用类型变量,并不是一个 String 对象,@1中创建了 ...
- Java知多少(15)字符串
从表面上看,字符串就是双引号之间的数据,例如"微学苑"."http://www.weixueyuan.net"等.在Java中,可以使用下面的方法定义字符串: ...
- JAVA返回指定字符串的长度,Java截取指定字节长度的字符串
在实际的项目中,我们后台的数据库是根据指定编码(如GBK)保存数据的,为防止操作数据库时,因字段值长度超过数据库定义的长度,须在JAVA甚至JS层面做长度的校验控制,如数据库定义的长度是varchar ...
- java 以什么开头_判断字符串以什么开头
Java 判断字符串是否以什么开头 可以使用 startsWith() 判断,例如: String str = "Hello World.";// 判断是否以 Hello 开始Sy ...
最新文章
- Jacobian矩阵的几何意义
- 阿里巴巴业务平台事业部总负责人墙辉:加速构建国际电商体系
- python3 网络编程 主机字节序 网络字节序 相互转换
- 四、数据仓库和Hive环境搭建
- if else可以看成一个完整的代码块
- sql语句--查询语句(MySQL)
- 存储型xss漏洞怎么解决_FinDOMXSS:一款针对DOM型XSS漏洞的快速扫描工具
- Codeforces Round #721 (Div. 2)
- 《剑指offer》全解(图文结合,通俗易懂,一篇看爽)
- 分享一个非常 nice 的工具
- 图像处理 - ImageMagick 简单介绍与案例
- 国内顶尖网页游戏制作人和主策划名单(转)
- 如何解决 Windows 2000 设备管理器中列出的未知设备问题(转)
- CodeForces - 735D Taxes (哥德巴赫猜想)
- bochs镜像java模拟器_【 bochs win7镜像完整版 】bochs win7镜像完整版(bochs win7 img文件)新版下载 - U大师...
- 数据结构与算法分析 收获总结 第11章 图
- creator owner是什么用户_并发系列-到底什么重量级锁?
- 在线笔试神器~福利哟
- velocity 将字符串切割按每隔3位加逗号,map集合遍历,字符串拼接,
- 近似误差 与 估计误差
热门文章
- 大数据学习笔记37:Hive - 复杂数据类型
- 【BZOJ2553】禁忌,AC自动机+期望DP+矩乘
- 【BZOJ3152】组合子逻辑,贪心+堆
- 16.对极几何——极线约束,收敛相机,平行图像平面,两个立体对 测验_2
- C ++ 数组 | 寻找最大、最小值,数组(Array)_1
- 3GPP协议学习-TS 38.201-NR;物理层;总体描述
- 华为鸿蒙应用市场抽成,谷歌宣布抽成30%,开发者把华为鸿蒙看做是取代安卓的唯一救星...
- 新闻列表页flex_C端列表页如何设计?
- Easy-mock让团队协作效率提高不止一点点
- 如何在CentOS上创建Kubernetes集群