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

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


นิพจน์ทั่วไป “[a-zA-Z]+ ” ตรงกับหนึ่งหรือตัวอักษรภาษาอังกฤษ ดังนั้นหากต้องการแยกแต่ละคำในสตริงอินพุตที่กำหนด -

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

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

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

ตัวอย่าง

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

ผลลัพธ์

ป้อนข้อความตัวอย่าง:สวัสดี นี่คือตัวอย่าง textWords ในสตริงที่กำหนด:Hellothisisasampletext