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"。

相关推荐
不一样的故事1268 小时前
学习Python是一个循序渐进的过程,结合系统学习、持续实践和项目驱动,
开发语言·python·学习
eqwaak08 小时前
科技信息差(9.13)
大数据·开发语言·人工智能·华为·语言模型
郝学胜-神的一滴8 小时前
深入探索 Python 元组:从基础到高级应用
运维·服务器·开发语言·python·程序人生
一只乔哇噻8 小时前
java后端工程师进修ing(研一版‖day44)
java·开发语言·学习·算法
老华带你飞8 小时前
畅阅读小程序|畅阅读系统|基于java的畅阅读系统小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序·毕设·畅阅读系统小程序
Ares-Wang8 小时前
Vue3》》eslint Prettier husky
开发语言·javascript·ecmascript
EveryPossible8 小时前
静态箭头连线
开发语言·javascript·ecmascript
NiKo_W9 小时前
Git 版本回退与撤销修改
开发语言·git·安全
listhi5209 小时前
Map对象在JavaScript循环中的使用
开发语言·前端·javascript
大可门耳9 小时前
Qt第一课:Qt是什么?相对于其他框架的优劣势是什么
开发语言·qt