📜  Java如何使用正则表达式代替endsWith()方法?

📅  最后修改于: 2022-05-13 01:54:49.140000             🧑  作者: Mango

Java如何使用正则表达式代替endsWith()方法?

所以主要讨论什么是endsWith()方法,所以它是String类的一个检查字符串是否以指定后缀结尾的方法。此方法返回布尔值 true 或 false。

句法:

public boolean endsWith(String suff)      

参数:指定后缀部分

返回:布尔值,这里在Java我们只有true和false。

方法:



我们可以使用正则表达式/匹配来代替Java的startWith() 方法

  1. 使用正则表达式
  2. 使用匹配

方法一:使用正则表达式

正则表达式或正则表达式(简称 Regex)是一种用于定义字符串模式的 API,可用于在Java搜索、操作和编辑字符串。电子邮件验证和密码是字符串的几个领域,其中 Regex 被广泛用于定义约束。正则表达式在Java.util.regex 包下提供。这包括 3 个类和 1 个接口。 Java.util.regex 包主要由以下三个类组成,如下表所示:

  • 图案
  • 匹配器
  • 模式语法异常

例子

Java
// Java Program to Illustrate use of Regular Expression
// as substitute of endsWith() method 
  
// Importing required classes
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
// Main class
public class Geek {
  
    // Main driver method
    public static void main(String args[])
    {
  
        // Declaring and initialising string
        String Str = new String("Welcome to geeksforgeeks");
  
        // Display message
        System.out.print(
            "Check whether string ends with Welcome using endsWith : ");
  
        // Using endWith() method
        System.out.println(Str.endsWith("geeks"));
  
        // Creating Pattern and matcher classes object
        Pattern pattern = Pattern.compile(".*geeks");
        Matcher m = pattern.matcher(Str);
  
        // Checking whether string ends with specific word
        // or nor and returning the boolean value
        // using ? operator and find() method 
        System.out.print(
            "Check whether string ends with Welcome using Regex: ");
        System.out.println(m.find() ? "true" : "false");
    }
}


Java
// Java Program to Illustrate use of Matches
// as substitute of endsWith() method
  
// Importing all utility classes
import java.util.*;
  
// Main class
public class Geek {
  
    // Main driver method
    public static void main(String args[])
    {
  
        // Initialising String
        String Str = new String("Welcome to geeksforgeeks");
  
        // Display message for better readibility
        System.out.print(
            "Check whether string starts with Welcome using endsWith : ");
        // Using endsWith() to end with specific word
        System.out.println(Str.endsWith("geeks"));
  
        // Display message for better readibility
        System.out.print(
            "Check whether string starts with Welcome using Matches: ");
        // Now checking whether it matches with
        // above defined specific word
        System.out.println(Str.matches("(.*)geeks"));
    }
}


输出
Check whether string ends with Welcome using endsWith : true
Check whether string ends with Welcome using Regex: true

方法 2:使用匹配

String.matches()方法告诉这个字符串是否匹配给定的正则表达式。以 str.matches(regex) 形式调用此方法会产生与表达式 Pattern.matches(regex, str) 完全相同的结果。

句法:

public boolean matches(String regex);

参数:此字符串要匹配的正则表达式。

返回值:当且仅当此字符串与给定的正则表达式匹配时,此方法才返回 true。

例子

Java

// Java Program to Illustrate use of Matches
// as substitute of endsWith() method
  
// Importing all utility classes
import java.util.*;
  
// Main class
public class Geek {
  
    // Main driver method
    public static void main(String args[])
    {
  
        // Initialising String
        String Str = new String("Welcome to geeksforgeeks");
  
        // Display message for better readibility
        System.out.print(
            "Check whether string starts with Welcome using endsWith : ");
        // Using endsWith() to end with specific word
        System.out.println(Str.endsWith("geeks"));
  
        // Display message for better readibility
        System.out.print(
            "Check whether string starts with Welcome using Matches: ");
        // Now checking whether it matches with
        // above defined specific word
        System.out.println(Str.matches("(.*)geeks"));
    }
}
输出
Check whether string starts with Welcome using endsWith : true
Check whether string starts with Welcome using Matches: true