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

วิธีดึงตัวอักษรแรกของแต่ละคำด้วยนิพจน์ปกติใน Java

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

ดังนั้น เพื่อดึงตัวอักษรแรกของแต่ละคำ:

  • คอมไพล์นิพจน์ดังกล่าวด้วยเมธอด compile() ของคลาส Pattern
  • รับออบเจ็กต์ Matcher โดยส่งสตริงอินพุตที่ต้องการเป็นพารามิเตอร์ให้เมธอด matcher() ของคลาส Pattern
  • สุดท้าย สำหรับแต่ละการจับคู่ ให้ดึงตัวอักษรที่จับคู่ได้โดยเรียกเมธอด group()

ตัวอย่าง

import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class FirstLetterExample {    public static void main(String[] args) {       Scanner sc = new Scanner(System.in);       System.out.println("Enter sample text: ");       String data = sc.nextLine();       String regex = "\\b[a-zA-Z]";       // สร้างออบเจ็กต์ Pattern       Pattern pattern = Pattern.compile(regex);       // สร้างออบเจ็กต์ Matcher       Matcher matcher = pattern.matcher(data);       System.out.println("First letter of each word from the given string: ");       while(matcher.find()) {          System.out.print(matcher.group()+" ");       }    } }

ผลลัพธ์

Enter sample text: National Intelligence Agency Research & Analysis Wing First letter of each word from the given string: N I A R A W