Java字符串比较的三种方式(相等比较,大小比较)

目录

1.相等比较

[equals() 方法](#equals() 方法)

[equalsIgnoreCase() 方法](#equalsIgnoreCase() 方法)

2.大小比较

[compareTo() 方法](#compareTo() 方法)

字典顺序比较规则:


1.相等比较

equals() 方法

equals() 方法将逐个地比较两个字符串的每个字符是否相同。如果两个字符串具有相同的字符和长度,它返回 true,否则返回 false。对于字符的大小写,也在检查的范围之内。equals() 方法的语法格式如下:

str1.equals(str2);

equalsIgnoreCase() 方法

equalsIgnoreCase() 方法的作用和语法与 equals() 方法完全相同,唯一不同的是equalsIgnoreCase() 比较时不区分大小写。

2.大小比较

compareTo() 方法

通常,仅仅知道两个字符串是否相同是不够的。对于排序应用来说,必须知道一个字符串是大于、等于还是小于另一个。一个字符串小于另一个指的是它在字典中先出现。而一个字符串大于另一个指的是它在字典中后出现。

compareTo() 方法用于按字典顺序比较两个字符串的大小,该比较是基于字符串各个字符的 Unicode 值

compareTo() 方法的语法格式如下:

str.compareTo(String otherstr);

它会按字典顺序将 str 表示的字符序列与 otherstr 参数表示的字符序列进行比较。如果按字典顺序 str 位于 otherster 参数之前 ,比较结果为一个负整数 ;如果 str 位于 otherstr 之后 ,比较结果为 一个正整数 ;如果两个字符串相等 ,则结果为 0

字典顺序比较规则:

字符串按照字典顺序(lexicographical order)进行比较,并不是仅仅比较第一个字母,而是逐个字符进行比较,直到找到不同的字符或者比较完所有字符。字典顺序比较的规则如下:

  1. 字符比较 :从两个字符串的开始位置(即第一个字符)进行比较,比较它们的Unicode值。如果字符不同 ,则比较结果由第一个不同的字符的Unicode值决定
  2. 长度比较:如果第一个字符相同,则比较下一个字符,依此类推。如果两个字符串在某个位置的字符相同,则比较下一个位置的字符。
  3. 终止条件 :如果两个字符串在某个位置之前的所有字符都相同 ,但一个字符串在该位置之后没有更多的字符,则较短的字符串被认为是"小于"较长的字符串。

举例:

"apple" 和 "banana":比较第一个字符 'a' 和 'b',因为 'a' 的Unicode值小于 'b',所以 "apple" 小于 "banana"。
考虑两个字符串 "apple" 和 "applet":

  • 首先比较第一个字符:'a' 和 'a',它们相同。
  • 然后比较第二个字符:'p' 和 'p',它们相同。
  • 接着比较第三个字符:'p' 和 'p',它们相同。
  • 再比较第四个字符:'l' 和 'l',它们相同。
  • 最后比较第五个字符:'e' 和 't','e' 的Unicode值小于 't' 的Unicode值。

因此,根据字典顺序,"apple" 小于 "applet"。

相关推荐
C语言小火车40 分钟前
C++ 堆排序深度精讲:基于完全二叉树的选择排序进化,最坏情况 O(n log n) 的稳定王者
开发语言·c++·算法·排序算法·堆排序
北冥you鱼41 分钟前
abigen 最佳实践:从入门到精通,高效生成 Go 语言合约绑定
开发语言·golang·区块链
ALex_zry2 小时前
C++26 std::complex 结构化绑定详解:auto [re, im] = c
c语言·开发语言·c++
shushangyun_2 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
她说..2 小时前
Java 默认值设置方式
java·开发语言·后端·springboot
忧郁的紫菜3 小时前
基础实现:单篇 Markdown 转 Word
开发语言·c#·word
甜美的小天鹅3 小时前
Swifter C#之inline还是不inline,这是个问题
开发语言·c#
学渣超3 小时前
记一次分布式事务数据不一致的排查之旅:从超时到索引,层层剥茧
java·后端·架构
小短腿的代码世界3 小时前
Qt Bluetooth源码深度解析:从HCI协议到跨平台API的完整架构
开发语言·qt·架构
掉鱼的猫3 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·llm·aigc