Java-005 字符串比较

  字符串比较常见的操作,包括比较相等,比较大小,比较前缀和后缀串等。在Java中,比较字符串的常用方法有3个:equals()方法,equalsIgnoreCase()方法,compareTo()方法。

 

  equals()方法

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

  

str1.equals(str2);

  str1和str2可以是字符串变量,也可以是字符串字面量。例如,下列表达是是合法的

"hello".equals(greeting)

  下面的代码说明了equals()方法的使用:

String str1 = "abc";
String str2 = new String("abc");
String str3 = "ABC";
System.out.println(str1.equals(str2));//输出true
System.out.println(str1.queals(str3));//输出false

  综合例子:

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("两次密码不一致,请重新设置。");
    }

  equalsIgnoreCase()方法

  equalsIgnoreCase()方法的作用和语法于equals()犯法完全相同,唯一不同的是qualsIgnore()比较是不区分大小写。当比较字符串时,它会认为A-Z和a-z是一样的。

下面的代码说明了equalsIgnoreCase()的使用:

String str1 = "abc";
String str2 = "ABC";
System.out.println(str1.equalsIgnoreCase(str2));//输出true

  综合例子:

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("登录失败。");
    }

  equals() 与==的比较

  理解equals()方法和==运算符执行的是两个不同的操作是重要的。如同刚才解释的那样,equals()方法比较字符串对象种的字符。而==运算符比较连个对象引用看它们是否引用相同的实例

String s1 = "Hello";
String s2 = new String(s1);
System.out.println(s1.equals(s2)); // 输出true
System.out.println(s1 == s2); // 输出false

  compareTo()方法

  通常,仅仅知道两个字符串是否相同是不够的。对于排序引用来说,必须知道一个字符串是大于等于还是小于另一个。一个字符串小于另一个指的是它在字典中先出现。而一个字符串大与另一个指的是它在字典中后出现。字符串(String)的compareTo()方法实现了这种功能。

  compareTo()方法用于按字典顺序边角连个字符串的大小,该比较是基于字符串各个字符的Unicode值。compareTo()方法的语法格式如下:

str.compareTo(String otherstr);

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

  提示如果连个字符串调用equals()方法返回true,那么调用compareTo()方法会返回0。

    String str = "A";
    String str1 = "a";
    System.out.println("str=" + str);
    System.out.println("str1=" + str1);
    System.out.println("str.compareTo(str1)的结果是:" + str.compareTo(str1));
    System.out.println("str1.compareTo(str)的结果是:" + str1.compareTo(str));
    System.out.println("str1.compareTo('a')的结果是:" + str1.compareTo("a"));

  上述代码定义了两个字符串“A”和“a”,然后调用compareTo()方法进行相互比较。最后一行代码拿“a”与“a”进行比较,由于两个字符串相同比较为0。运行后输出的结果如下:

str = A
str1 = a
str.compareTo(str1)的结果是:-32
str1.compareTo(str)的结果是:32
str1.compareTo('a')的结果是:0

  

 

posted @ 2020-09-15 09:42  King~~~  阅读(238)  评论(0编辑  收藏  举报