📜  如何在Java使用 String.matches() 作为 startWith() 方法的替代?

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

如何在Java使用 String.matches() 作为 startWith() 方法的替代?

String startsWith() 语法表明此方法存在于 String 类中,该类负责测试字符串是否以从第一个索引开始的指定前缀开始。

句法:

public boolean startsWith(String prefix)

参数:要匹配的前缀。

返回值:如果参数表示的字符序列是此字符串表示的字符序列的前缀则返回true;否则为假。

方法:



下面列出了 startWith() 的两个替代品:

  1. 常用表达
  2. String类的matches()方法

让我们讨论以下两种方法:

方法一:使用正则表达式

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

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

例子

Java
// java Program to Illustarte Usage of Regular Expressions
// as a Substitute of startWith() method
  
// Importing Matcher and Pattern classes
// from the java.util.regex package
import java.util.regex.Matcher;
import java.util.regex.Pattern;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String args[])
    {
        // Declaring and initialising custom string
        String Str = new String("Welcome to geeksforgeeks");
  
        // Display message for better readibility
        System.out.print(
            "Check whether string starts with Welcome using startsWith : ");
  
        // Testing the prefix using startsWith()
        System.out.println(Str.startsWith("Welcome"));
  
        // Testing the prefix using Regex() by creating
        // objects of Pattern and Matcher class
        Pattern pattern = Pattern.compile("Welcome.*");
        Matcher m = pattern.matcher(Str);
  
        // Print commands
        System.out.print(
            "Check whether string starts with Welcome using Regex: ");
        System.out.println(m.find() ? "true" : "false");
    }
}


Java
// java Program to Illustarte Usage of String.matches()
// as a Substitute of startWith() method
  
// Importing required classses
import java.util.*;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String args[])
    {
        // Declaring and initialising string
        String Str = new String("Welcome to geeksforgeeks");
  
        // Testing the prefix using startsWith()
        // Work taken - 'Welcome'
        System.out.print(
            "Check whether string starts with Welcome using startsWith : ");
        System.out.println(Str.startsWith("Welcome"));
  
        // Testing the prefix using Regex()
        // Word to be matched - 'Welcome'
        System.out.print(
            "Check whether string starts with Welcome using Matches: ");
        System.out.println(Str.matches("Welcome(.*)"));
    }
}


输出
Check whether string starts with Welcome using startsWith : true
Check whether string starts with Welcome using Regex: true

方法二:使用String类的matches()方法

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

句法:

public boolean matches(String regex)

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

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

例子

Java

// java Program to Illustarte Usage of String.matches()
// as a Substitute of startWith() method
  
// Importing required classses
import java.util.*;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String args[])
    {
        // Declaring and initialising string
        String Str = new String("Welcome to geeksforgeeks");
  
        // Testing the prefix using startsWith()
        // Work taken - 'Welcome'
        System.out.print(
            "Check whether string starts with Welcome using startsWith : ");
        System.out.println(Str.startsWith("Welcome"));
  
        // Testing the prefix using Regex()
        // Word to be matched - 'Welcome'
        System.out.print(
            "Check whether string starts with Welcome using Matches: ");
        System.out.println(Str.matches("Welcome(.*)"));
    }
}
输出
Check whether string starts with Welcome using startsWith : true
Check whether string starts with Welcome using Matches: true