在 Java 中,字符串比较是常见的操作,包括比较相等、比较大小、比较前缀和后缀串等··;常用方法有 3 个:equals() 方法、equalsIgnoreCase() 方法、 compareTo() 方法,接下来详细介绍这 3 个方法的使用:
equals() 方法:
equals() 方法比较两个字符串的每个字符是否相同。如果两个字符串字符和长度相同,它返回 true,否则返回 false;大小写也会检查!
语法格式如下:
str.equals(stri);
比较:
public class 字符串比较 {
public static void main(String[] args) {
String a1 = "aaa";
String a2 = new String("aaa");
String a3 = "ABC";
System.out.println(a1.equals(a2));
System.out.println(a2.equals(a3));
System.out.println(a1.equals(a3));
}
}
运行结果:
true
false
false
代码示例1:
public class 字符串比较 {
public static void main(String[] args) {
String str = "图书管理";
System.out.println("欢迎使用<" + str + ">系统");
System.out.println("首次登陆请设置账号密码:");
Scanner input = new Scanner(System.in);
String password = input.next();//设置密码
System.out.println("重复登录密码:");
input = new Scanner(System.in);
String password1 = input.next(); // 确认密码
if (password.equals(password1)) {
System.out.println("密码已生效,请务必记住:" + password);
} else {
System.out.println("两次密码不一致,请重新设置!");
}
}
}
运行结果:
欢迎使用<图书管理>系统
首次登陆请设置账号密码:
qww
重复登录密码:
qww
密码已生效,请务必记住:qww
进程已结束,退出代码0
equalsIgnoreCase() 方法:
equalsIgnoreCase() 方法的作用和语法与 equals() 方法完全相同,唯一一点不同的是 equalsIgnoreCase() 比较的时候不区分大小写。当比较两个字符串时,它会认为 a-z和A-Z是一样的。
比较
String st1 = "abc";
String st2 = "ABC";
System.out.println(st1.equalsIgnoreCase(st2)); // 输出 true
代码示例2:
public class 字符串比较 {
public static void main(String[] args) {
String str = "图书管理";
System.out.println("欢迎使用<" + str + ">系统");
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("SHANGHAI") && pass.equalsIgnoreCase("PUDONG")) {
System.out.println("登录成功");
} else {
System.out.println("登录失败!");
}
}
}
运行结果:
欢迎使用<图书管理>系统
请输登录入名称:
shanghai
请输入登录密码:
pudong
登录成功
进程已结束,退出代码0
compareTo() 方法
compareTo() 方法用于按字典顺序比较两个字符串的大小,该比较是基于字符串各个字符的 Unicode 值
注:如果两个字符串调用 equals() 方法返回 true,那么调用 compareTo() 方法会返回 0。
比较
str.compareTo(String otherstr)
代码示例3:
public class 字符串比较 {
public static void main(String[] args) {
String str = "Z";
String str1 = "z";
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('z'):" + str.compareTo("Z"));
}
}
运行结果:
str=Z
str1=z
str.compareTo(str1):-32
str1.compareTo(str):32
str1.compareTo('z'):0
进程已结束,退出代码0