Java 1.1.4 检测字符串是否相等
1.可以使用 equals方法检测两个字符串是否相等。
对于表达式:
s.equals(t)
如果字符串 s 与字符串 t 相等, 则返回 true ; 否则, 返回 false。
2.需要注意,s与 t 可以是字符串变量, 也可以是字符串字面量。例如,下列表达式是合法的:
"Hello".equals(greeting)
3.要想检测两个字符串是否相等,而不区分大小写, 可以使用 equalsIgnoreCase 方法。
"Hello".equalsIgnoreCase("hello")
4.一定不要使用==运算符检测两个字符串是否相等! 这个运算符只能够确定两个字串 是否放置在同一个位置上。当然, 如果字符串放置在同一个位置上, 它们必然相等。但是, 完全有可能将内容相同的多个字符串的拷贝放置在不同的位置上。
String greeting = "Hello"; //initialize greeting to a string
if (greeting == "Hello") . . .
// probably true
if (greeting.substring(0, 3) == "Hel") . . .
// probably false
如果虚拟机始终将相同的字符串共享, 就可以使用= 运算符检测是否相等。但实际上 只有字符串常量是共享的,而+ 或 substring 等操作产生的结果并不是共享的。因此,千万不要使甩== 运算符测试字符串的相等性, 以免在程序中出现糟糕的 bug。从表面上看, 这种 bug 很像随机产生的间歇性错误。
.C++ 注释:
对于习惯使用 C++ 的 string 类的人来说, 在进行相等性检测的时候一定要特别小心。C++ 的 string 类重载了 == 运算符以便检测字符串内容的相等性。 可惜 Java 没 有采用这种方式, 它的字符串“ 看起来、感觉起来” 与数值一样, 但进行相等性测试时, 其操作方式又类似于指针。语言的设计者本应该像对 + 那样也进行特殊处理, 即重定义 = 运算符。 当然,每一种语言都会存在一些不太一致的地方。
C 程序员从不使用 = 对字符串进行比较, 而使用 strcmp 函数。Java 的 compareTo 方法与 strcmp 完全类似, 因此,可以这样使用:
if (greeting.compareTo("Hel1oH) === 0} . . .
不过, 使用 equals 看起来更为清晰。
Java 1.1.4 检测字符串是否相等相关推荐
- Java中的如何检测字符串是否相等
文章目录 0 写在前面 1 介绍 2 举例 3 写在后面 0 写在前面 实际业务中有时候得检测字符串是否相等的场景. 例如在数据库中提取uuid,检测两个uuid是否相等就需要用到这个地方. 1 介绍 ...
- Java黑皮书课后题第6章:**6.18(检测密码)一些网站对于密码具有一些规则。编写一个方法检测字符串是否是一个有效密码。编写一个程序,提示用户输入一个密码,如果符合规则,则显示…否则显示…
6.18(检测密码)一些网站对于密码具有一些规则.编写一个方法检测字符串是否是一个有效密码.编写一个程序,提示用户输入一个密码,如果符合规则,则显示-否则显示- 题目 题目描述 破题 代码 运行示例 ...
- android 检测字符串是否为合法域名
今天,简单讲讲android里如何检测输入的字符串为合法的域名. 这个昨天搜索了很多资料,基本没有找到符合要求的代码.后来,花了很多时间,才解决了问题.这里记录一下. 一.检查输入域名是否合法. 具体 ...
- Java基础(数据类型、字符串)
Java基本程序设计结构 数据类型 整型 浮点类型 char类型 boolean类型 运算符 数值类型之间的转换 强制类型转换 字符串 拼接 String API String常用的方法 空串与Nul ...
- Java 图像处理教程(人脸检测,添加水印,图像颜色转换)
Java 图像处理教程(人脸检测,添加水印,图像颜色转换) 文章目录 Java 图像处理教程(人脸检测,添加水印,图像颜色转换) 1:图片的读和写 2:彩色图像转换成灰度图像 3:彩色图像转换成负图像 ...
- 使用java中replaceAll方法替换字符串中的反斜杠
今天在项目中使用java中replaceAll方法将字符串中的反斜杠("\")替换成空字符串(""),结果出现如下的异常: 1 java.util.regex. ...
- java 嵌套对象转xml_Gson对Java嵌套对象和JSON字符串之间的转换 | 学步园
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识, ...
- java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组之间的转换方法...
1.java代码中fastjson生成字符串和解析字符串的方法 List<TemplateFull> templateFulls = new ArrayList<TemplateFu ...
- R语言stringr包str_detect函数检测字符串中模式存在与否实战
R语言stringr包str_detect函数检测字符串中模式存在与否实战 目录 R语言stringr包str_detect函数检测字符串中模式存在与否实战 #导入stringr包
最新文章
- 22岁专访库克、B站3天涨粉百万,他将毕设树莓派扫描仪升级,繁星散落在校空!...
- 测试总监7天整理的那些高频而真实的软件测试面试题,速来get
- 在windows环境下基于sublime text3的node.js开发环境搭建
- MSI-X 之有别于MSI
- android控件属性
- ADO.Net Entity Framework Linq To Entities 语法功能汇编
- SQL Server R2 地图报表制作(四)
- linux--监控系统之Zabbix简介(二)
- POI的入门:加载解析Excel
- 使用 .NET CORE 创建 项目模板,模板项目,Template
- java学习(11):Java数据类型转换
- 0x30 java_终于找到了!有了它你就可以读懂字节码了!
- go语言如何调用java接口,[译] 如何在 Go 中使用接口
- 如何把include_type_name的值设置为true
- @程序员,除了女朋友你还要带什么回去?
- 如何使用JavaScript来写ASP程序
- Cesium:地球中实现点击浮动弹窗
- if判断与while、for循环语句
- 自动控制原理第2章——自动控制系统的数学模型(思维导图)
- 计算机与现代社会英语作文,急求英文翻译 随着现代社会的发展,人工智能已经逐步进入了我们的生活。人工智能带给了我们生活无穷的便...