📜  Java字符串比较(1)

📅  最后修改于: 2023-12-03 15:02:04.384000             🧑  作者: Mango

Java字符串比较

在Java中,我们可以使用equals()方法或compareTo()方法来比较字符串。

1. equals()方法

equals()方法用于比较两个字符串是否相等。它是区分大小写的,也就是说,字符串中每个字符的大小写都必须完全一致才会返回true

String str1 = "hello";
String str2 = "Hello";
if (str1.equals(str2)) {
    System.out.println("str1 equals str2");
} else {
    System.out.println("str1 not equals str2");
}

输出结果为str1 not equals str2

2. compareTo()方法

compareTo()方法用于比较两个字符串的大小关系。它返回一个int类型的值,如果参数字符串等于此字符串,则返回值为0;如果参数字符串小于此字符串,则返回一个小于0的值;如果参数字符串大于此字符串,则返回一个大于0的值。

String str1 = "hello";
String str2 = "Hello";
int result = str1.compareTo(str2);
if (result == 0) {
    System.out.println("str1 equals str2");
} else if (result < 0) {
    System.out.println("str1 less than str2");
} else {
    System.out.println("str1 greater than str2");
}

输出结果为str1 greater than str2,因为在字符串的比较中,大写字母的ASCII码要小于小写字母的ASCII码。

3. 区分大小写和不区分大小写

如果需要忽略字符串中的大小写来进行比较,可以使用equalsIgnoreCase()方法或者将字符串全部转换为大写或小写再进行比较。

String str1 = "hello";
String str2 = "HELLO";
if (str1.equalsIgnoreCase(str2)) {
    System.out.println("str1 equals str2");
} else {
    System.out.println("str1 not equals str2");
}

String str3 = "Hello";
String str4 = "HELLO";
if (str3.toLowerCase().equals(str4.toLowerCase())) {
    System.out.println("str3 equals str4");
} else {
    System.out.println("str3 not equals str4");
}

以上代码的输出结果都为str1 equals str2str3 equals str4

4. 注意事项

在Java中,字符串是不可变的,也就是说,字符串一旦被创建,它的值就不能被改变了。因此,在使用equals()compareTo()方法进行字符串比较时,需要注意以下事项:

  • 对于两个字符串判断相等时,要用equals()方法而不是==来进行比较。
  • 当两个字符串都为null时,equals()compareTo()方法都会返回true
  • 在使用compareTo()方法进行字符串比较时,如果字符串中含有非字母、数字、符号的字符,可能会导致结果不准确。因此,在进行字符串比较前最好先将字符串进行去除非字母、数字、符号的字符处理。
5. 总结

在Java中,字符串比较可以使用equals()方法或compareTo()方法。equals()方法用于判断两个字符串是否相等,compareTo()方法用于比较两个字符串的大小关系。在比较字符串时需要注意区分大小写和不区分大小写的情况,同时也需要注意字符串不可变的特性和处理特殊字符的问题。