字符串比较是常见的操作,包括比较相等、比较大小、比较前缀和后缀串等 。在Java中,比较字符串的常用方法有3个:equals()方法、equalsIgnoreCase()方法、compareTo()方法 。下面详细介绍这3个方法的使用 。

equals()方法equals()方法将逐个地比较两个字符串的每个字符是否相同 。如果两个字符串具有相同的字符和长度,它返回true,否则返回false 。对于字符的大小写,也在检查的范围之内 。equals()方法的语法格式如下:
str1.equals(str2);1复制代码类型:[java]
str1和str2可以是字符串变量,也可以是字符串字面量 。例如,下列表达式是合法的:"Hello".equals(greeting)1复制代码类型:[java]
【实现两个字符串的比较 两个字符串比较是否相等】下面的代码说明了equals()方法的使用:String str1 = "abc";String str2 = new String("abc");String str3 = "ABC";System.out.println(str1.equals(str2)); // 输出 trueSystem.out.println(str1.equals(str3)); // 输出 false12345复制代码类型:[java]
例1在第一次进入系统时要求管理员设置一个密码,出于安全考虑密码需要输入两次,如果两次输入的密码一致才生效,否则提示失败 。具体实现代码如下:public static void main(String[] args) {String sys = "学生信息管理";System.out.println("欢迎进入《" + sys + "》系统");System.out.println("请设置一个管理员密码:");Scanner input = new Scanner(System.in);String pass = input.next(); // 设置密码System.out.println("重复管理员密码:");input = new Scanner(System.in);String pass1 = input.next(); // 确认密码if (pass.equals(pass1)) { // 比较两个密码System.out.println("已生效,请牢记密码:" + pass);} else {System.out.println("两次密码不一致,请重新设置 。");}}123456789101112131415复制代码类型:[java]
运行该程序,由于equals()方法区分大小写,所以当两次输入的密码完全一致时,equals()方法返回true,输出结果如下所示:欢迎进入《学生信息管理》系统请设置一个管理员密码:abcdef重复管理员密码:abcdef已生效,请牢记密码:abcdef123456复制代码类型:[java]
否则输出如图下所示的结果:欢迎进入《学生信息管理》系统请设置一个管理员密码:abcdef重复管理员密码:aBcdef两次密码不一致,请重新设置 。123456复制代码类型:[java]
equalsIgnoreCase()方法equalsIgnoreCase()方法的作用和语法与equals()方法完全相同,唯一不同的是equalsIgnoreCase()比较时不区分大小写 。当比较两个字符串时,它会认为A-Z和a-z是一样的 。下面的代码说明了equalsIgnoreCase()的使用:
String str1 = "abc";String str2 = "ABC";System.out.println(str1.equalsIgnoreCase(str2));// 输出 true123复制代码类型:[java]
例2在会员系统中需要输入用户名和密码进行检验,下面使用equalsIgnoreCase()方法实现检验登录时不区分用户名和密码的大小写,具体的代码实现如下所示 。public static void main(String[] args) {String sys = "学生信息管理";System.out.println("欢迎进入《" + sys + "》系统");System.out.println("请输入管理员名称:");Scanner input = new Scanner(System.in);String name = input.next(); // 获取用户输入的名称System.out.println("请输入管理员密码:");input = new Scanner(System.in);String pass = input.next(); // 获取用户输入的密码// 比较用户名与密码,注意此处忽略大小写if (name.equalsIgnoreCase("admin") && pass.equalsIgnoreCase("somboy")) { // 验证System.out.println("登录成功 。");} else {System.out.println("登录失败 。");}}12345678910111213141516复制代码类型:[java]
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 两个无理数的和一定是无理数吗 两个正无理数的和一定是无理数吗?
- 两个路由器 怎么把两个路由器连接在一起?
- 3dmax合并两个max文件 3dmax合并模型
- cmd重启电脑命令 CMD中如何实现重新启动
- 两个路由器 一条网线可以连两个路由器吗?
- 150/100算高血压吗
- 一般车放两个月能打着火么
- 口罩还要戴多久一个月或者两个月吗
- 如何自我提升 如何实现自我提升
- 电动车放两个月会坏吗