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

จับคู่สตริงโดยไม่คำนึงถึงขนาดตัวพิมพ์โดยใช้ Java regex


วิธีการคอมไพล์ของคลาส patter ยอมรับพารามิเตอร์สองตัว -

  • ค่าสตริงที่แสดงถึงนิพจน์ทั่วไป
  • ค่าจำนวนเต็มของฟิลด์ของคลาส Pattern

ฟิลด์ CASE_INSENSITIVE ของคลาส Pattern ตรงกับอักขระโดยไม่คำนึงถึงตัวพิมพ์ ดังนั้น หากคุณส่งผ่านเป็นค่าแฟล็กไปยังเมธอด compile() พร้อมกับนิพจน์ทั่วไปของคุณ อักขระของทั้งสองกรณีจะถูกจับคู่

ตัวอย่างที่ 1

<ก่อนหน้า> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; ตัวอย่างคลาสสาธารณะ { โมฆะคงที่สาธารณะหลัก (สตริง args [] ) { Scanner sc =สแกนเนอร์ใหม่ (ระบบ .ใน); System.out.println("ป้อนข้อมูล:"); อินพุตสตริง =sc.nextLine(); // นิพจน์ทั่วไปเพื่อค้นหาอักขระที่ต้องการ String regex ="test"; //การคอมไพล์นิพจน์ทั่วไป Pattern pattern =Pattern.compile(regex);//, Pattern.CASE_INSENSITIVE); //ดึงวัตถุที่จับคู่ Matcher matcher =pattern.matcher (อินพุต); จำนวนเต็ม =0; ในขณะที่ (matcher.find()) { นับ ++; } System.out.println("จำนวนครั้ง:"+นับ); }}

ผลลัพธ์

ป้อนข้อมูลอินพุต:ทดสอบ TEST ทดสอบข้อมูลตัวอย่าง จำนวนครั้ง:3

ตัวอย่างที่ 2

<ก่อน> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; คลาสสาธารณะ VerifyBoolean { โมฆะสาธารณะหลัก (สตริง args []) { Scanner sc =สแกนเนอร์ใหม่ (ระบบ .ใน); System.out.println("ป้อนค่าสตริง:"); สตริง str =sc.next(); รูปแบบรูปแบบ =Pattern.compile("จริง|เท็จ", Pattern.CASE_INSENSITIVE); ตัวจับคู่ตัวจับคู่ =pattern.matcher (str); if(matcher.matches()){ System.out.println("สตริงที่ระบุเป็นประเภทบูลีน"); } อื่น { System.out.println ("สตริงที่ระบุไม่ใช่ประเภทบูลีน"); } }}

ผลลัพธ์

ป้อนค่าสตริง:TRUEGiven string เป็นประเภทบูลีน