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

相关推荐
风生u22 分钟前
activiti7 详解
java
玄同76526 分钟前
我的 Trae Skill 实践|使用 UV 工具一键搭建 Python 项目开发环境
开发语言·人工智能·python·langchain·uv·trae·vibe coding
岁岁种桃花儿31 分钟前
SpringCloud从入门到上天:Nacos做微服务注册中心(二)
java·spring cloud·微服务
Word码34 分钟前
[C++语法] 继承 (用法详解)
java·jvm·c++
Yorlen_Zhang36 分钟前
Python Tkinter Text 控件完全指南:从基础编辑器到富文本应用
开发语言·python·c#
lxl130737 分钟前
C++算法(1)双指针
开发语言·c++
TT哇40 分钟前
【实习 】银行经理端两个核心功能的开发与修复(银行经理绑定逻辑修复和线下领取扫码功能开发)
java·vue.js
逝水如流年轻往返染尘43 分钟前
Java中的数组
java
不绝1911 小时前
C#进阶:预处理指令/反射,Gettype,Typeof/关键类
开发语言·c#
无小道1 小时前
Qt-qrc机制简单介绍
开发语言·qt