Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะรับอักษรตัวแรกของแต่ละคำโดยใช้นิพจน์ทั่วไปใน Java ได้อย่างไร


อักขระเมตา “\b ” ตรงกับขอบเขตของคำและ [a-zA-Z] จะจับคู่อักขระหนึ่งตัวจากตัวอักษรภาษาอังกฤษ (ทั้งสองกรณี) กล่าวโดยย่อ นิพจน์ \\b[a-zA-Z] จับคู่อักขระตัวเดียวจากตัวอักษรภาษาอังกฤษ ทั้งสองกรณีหลังขอบเขตคำทุกคำ

ดังนั้น ในการดึงอักษรตัวแรกของแต่ละคำ −

  • รวบรวมนิพจน์ข้างต้นของวิธีการคอมไพล์ () ของคลาส Pattern

  • รับออบเจ็กต์ Matcher ที่ข้ามสตริงอินพุตที่ต้องการเป็นพารามิเตอร์ไปยังเมธอด matcher() ของคลาส Pattern

  • สุดท้าย สำหรับแต่ละการแข่งขัน ให้รับอักขระที่ตรงกันโดยเรียกใช้เมธอด group()

ตัวอย่าง

<ก่อน> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; FirstLetterExample คลาสสาธารณะ { public static void main (String [] args) { Scanner sc =สแกนเนอร์ใหม่ (ระบบ .ใน); System.out.println("ป้อนข้อความตัวอย่าง:"); ข้อมูลสตริง =sc.nextLine(); สตริง regex ="\\b[a-zA-Z]"; //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex); // การสร้างวัตถุตัวจับคู่ Matcher matcher =pattern.matcher (ข้อมูล); System.out.println("อักษรตัวแรกของแต่ละคำจากสตริงที่กำหนด:"); ในขณะที่ (matcher.find ()) { System.out.print (matcher.group ()+" "); } }}

ผลลัพธ์

ป้อนข้อความตัวอย่าง:National Intelligence Agency Research &Analysis Wing อักษรตัวแรกของแต่ละคำจากสตริงที่กำหนด:N I A R A W