您的位置:

javaendsWith是如何判断Java字符串结尾的?

在Java编程中,判断一个字符串是否以指定的后缀结尾是一种常见的需求。Java提供了endsWith()方法来帮助我们完成这个任务。这个方法能够检查一个字符串是否以指定的后缀结尾,并返回一个布尔值。

一、endsWith()方法的语法和说明

public boolean endsWith(String suffix)

endsWith()方法的唯一参数是一个字符串类型的后缀,它表示我们需要检查的结尾是否与这个后缀匹配。

endsWith()方法的返回值是一个布尔值,它指示这个字符串是否以指定的后缀结尾。如果一个字符串以指定的后缀结尾,则返回true;否则返回false。

二、endsWith()方法的使用示例

接下来,让我们看一些使用endsWith()方法的简单示例。

示例1:

String str1 = "Hello World!";
boolean result1 = str1.endsWith("World!");
System.out.println(result1);    // true

在这个示例中,我们创建了一个字符串"Hello World!",并使用endsWith()方法来检查它是否以"World!"结尾。由于结尾与指定的后缀匹配,结果返回true。

示例2:

String str2 = "Java is awesome";
boolean result2 = str2.endsWith("Java");
System.out.println(result2);    // false

在这个示例中,我们创建了一个字符串"Java is awesome",并使用endsWith()方法来检查它是否以"Java"结尾。由于结尾并不与指定的后缀匹配,结果返回false。

三、endsWith()方法的实现原理

接下来,我们来探讨一下endsWith()方法的实现原理。

endsWith()方法的实现方式很简单。它首先计算指定后缀的长度,然后将这个长度与字符串的长度比较。如果字符串长度小于等于后缀长度,则返回false。否则,它从字符串的末尾开始向前迭代,检查字符串中的每个字符是否与指定后缀中的对应字符相同。如果遇到不匹配的字符,则返回false。如果没有不匹配的字符,则返回true。

下面是endsWith()方法的基本实现代码:

public boolean endsWith(String suffix) {
    int suffixLength = suffix.length();
    int thisLength = value.length;
    if (suffixLength > thisLength) {
        return false;
    }
    int offset = thisLength - suffixLength;
    for (int i = suffixLength - 1; i >= 0; i--) {
        if (value[offset + i] != suffix.charAt(i)) {
            return false;
        }
    }
    return true;
}

四、endsWith()方法的注意事项

在使用Java的endsWith()方法时,有一些注意事项需要记住:

  1. endsWith()方法是区分大小写的。也就是说,如果要检查的后缀是"java",而字符串结尾是"Java",endsWith()方法会返回false。
  2. endsWith()方法只能用于检查一个字符串是否以指定的后缀结尾,不能用于检查一个字符串是否包含指定的子字符串。如果要检查字符串是否包含指定的子字符串,应该使用contains()方法。
  3. endsWith()方法不能用于检查一个字符串是否以多个后缀中的任意一个结尾。如果要检查这种情况,应该使用循环,对字符串中的每个后缀逐一进行检查。

五、总结

endsWith()方法是Java字符串类提供的一个用于检查字符串结尾的方法。它能够检查一个字符串是否以指定的后缀结尾,并返回一个布尔值。它的实现方式很简单,它首先计算指定后缀的长度,并将这个长度与字符串的长度比较。如果字符串长度小于等于后缀长度,则返回false。否则,它从字符串的末尾开始向前迭代,检查字符串中的每个字符是否与指定后缀中的对应字符相同。如果遇到不匹配的字符,则返回false。如果没有不匹配的字符,则返回true。

六、参考资料

  1. Java String endsWith()方法 – 实例、参数和执行结果:https://www.journaldev.com/17780/java-string-endswith-method
  2. Java String类:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html