实现两个字符串的比较 两个字符串比较是否相等

字符串比较是常见的操作,包括比较相等、比较大小、比较前缀和后缀串等 。在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]

推荐阅读