java.util.regex.Matcher class แสดงถึงเอ็นจิ้นที่ดำเนินการจับคู่ต่างๆ ไม่มีตัวสร้างสำหรับคลาสนี้ คุณสามารถสร้าง/รับวัตถุของคลาสนี้โดยใช้เมธอดmatch() ของคลาส java.util.regex.Pattern
ในกรณีของการจับคู่ requireEnd() เมธอดของคลาส (Matcher) นี้ตรวจสอบว่ามีโอกาสที่ผลการจับคู่จะเป็นเท็จหรือไม่ ในกรณีที่มีอินพุตมากกว่า ในกรณีนี้ เมธอดนี้จะคืนค่า true มิฉะนั้นจะคืนค่าเท็จ
ตัวอย่างเช่น หากคุณกำลังพยายามจับคู่คำสุดท้ายของสตริงอินพุตกับคุณโดยใช้ regex “you$” และหากบรรทัดอินพุตแรกของคุณคือ “hello how are you” คุณอาจมีการจับคู่ แต่ถ้าคุณยอมรับประโยคเพิ่มเติม คำสุดท้ายของบรรทัดใหม่อาจไม่ใช่คำที่กำหนด (ซึ่งก็คือ "คุณ") ทำให้ผลการจับคู่ของคุณเป็นเท็จ ในกรณีดังกล่าว เมธอด requiredEnd() จะคืนค่าเป็น true
ในทำนองเดียวกัน หากคุณพยายามจับคู่อักขระเฉพาะในอินพุตให้พูดว่า # และหากบรรทัดอินพุตแรกของคุณคือ "สวัสดี # คุณเป็นอย่างไรบ้าง" คุณจะมีการจับคู่และข้อมูลที่ป้อนมากขึ้นอาจเปลี่ยนเนื้อหาของตัวจับคู่ แต่กลับไม่เป็นเช่นนั้น ไม่ได้เปลี่ยนผลลัพธ์ที่เป็นจริง ในสถานการณ์ดังกล่าว เมธอด requireEnd() จะคืนค่าเป็นเท็จ
ตัวอย่างที่ 1
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RequiredEndExample { public static void main( String args[] ) { String regex = "you$"; //Reading input from user Scanner sc = new Scanner(System.in); System.out.println("Enter input text: "); String input = sc.nextLine(); //Instantiating the Pattern class Pattern pattern = Pattern.compile(regex); //Instantiating the Matcher class Matcher matcher = pattern.matcher(input); //verifying whether a match occurred if(matcher.find()) { System.out.println("Match found"); } boolean result = matcher.requireEnd(); if(result) { System.out.println("More input may turn the result of the match false"); } else{ System.out.println("The result of the match will be true, inspite of more data"); } } }
ผลลัพธ์
Enter input text: Hello how are you Match found More input may turn the result of the match false
ตัวอย่างที่ 2
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class RequiredEndExample { public static void main( String args[] ) { String regex = "[#]"; //Reading input from user Scanner sc = new Scanner(System.in); System.out.println("Enter input text: "); String input = sc.nextLine(); //Instantiating the Pattern class Pattern pattern = Pattern.compile(regex); //Instantiating the Matcher class Matcher matcher = pattern.matcher(input); //verifying whether a match occurred if(matcher.find()) { System.out.println("Match found"); } boolean result = matcher.requireEnd(); if(result) { System.out.println("More input may turn the result of the match false"); } else{ System.out.println("The result of the match will be true, inspite of more data"); } } }
ผลลัพธ์
Enter input text: Hello# how# are you Match found The result of the match will be true, in spite of more data