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

Matcher appendReplacement() วิธีการใน Java พร้อม Examples


คลาส java.util.regex.Matcher แสดงถึงเอ็นจิ้นที่ดำเนินการจับคู่ต่างๆ ไม่มีตัวสร้างสำหรับคลาสนี้ คุณสามารถสร้าง/รับวัตถุของคลาสนี้โดยใช้เมธอดmatch() ของคลาส java.util.regex.Pattern

วิธีการ appendReplacement() ของคลาส (Matcher) นี้ยอมรับวัตถุ StringBuffer และ String (สตริงการแทนที่) เป็นพารามิเตอร์ และผนวกข้อมูลที่ป้อนเข้าไปยังวัตถุ StringBuffer โดยแทนที่เนื้อหาที่ตรงกันด้วยสตริงการแทนที่

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

ตัวอย่าง1

นำเข้า java.util.regex.Matcher;import java.util.regex.Pattern; class สาธารณะ appendReplacementExample { โมฆะคงที่สาธารณะหลัก (สตริง [] args) { สตริง str ="

นี่ คือ

b> ตัวอย่างHTML สคริปต์

"; //นิพจน์ทั่วไปเพื่อให้ตรงกับเนื้อหาของแท็กตัวหนา String regex ="(\\S+)"; System.out.println("อินพุตสตริง:\n"+str); //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex); //จับคู่รูปแบบที่คอมไพล์แล้วใน String Matcher matcher =pattern.matcher(str); //การสร้างบัฟเฟอร์สตริงว่าง StringBuffer sb =ใหม่ StringBuffer(); ในขณะที่ (matcher.find ()) { matcher.appendReplacement (sb, "BoldData"); } matcher.appendTail(sb); System.out.println("เนื้อหาของ StringBuffer:\n"+ sb.toString() ); }}

ผลลัพธ์

Input string:

นี่ คือ ตัวอย่าง HTML สคริปต์.

เนื้อหาของ StringBuffer:BoldData นี้เป็น BoldData HTML BoldData.

ข้อมูลตัวหนานี้เป็นข้อมูลตัวหนา HTML ของ BoldData

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

<ก่อน> นำเข้า java.util.Scanner; นำเข้า java.util.regex.Matcher; นำเข้า java.util.regex.Pattern; คลาสสาธารณะ appendReplacementExample { โมฆะสาธารณะหลัก (สตริง [] args) { Scanner sc =สแกนเนอร์ใหม่ (ระบบ .ใน); System.out.println("ป้อนข้อความ:"); อินพุตสตริง =sc.nextLine(); สตริง regex ="[#$&+=@|<>-]"; //การสร้างวัตถุรูปแบบ Pattern pattern =Pattern.compile(regex); //การสร้าง Matcher วัตถุ Matcher matcher =pattern.matcher (อินพุต); จำนวนเต็ม =0; บัฟเฟอร์ StringBuffer =ใหม่ StringBuffer (); System.out.println("การลบอักขระพิเศษจากสตริงที่กำหนด"); ในขณะที่ (matcher.find ()) { นับ ++; matcher.appendReplacement(บัฟเฟอร์, ""); } matcher.appendTail(บัฟเฟอร์); //กำลังเรียกรูปแบบที่ใช้ System.out.println("The are special charactersเกิดขึ้น "+count+" ครั้งในข้อความที่กำหนด"); System.out.println("ข้อความหลังจากลบทั้งหมดแล้ว \n"+buffer.toString()); }}

ผลลัพธ์

ป้อนข้อความที่ป้อน:สวัสดี# how$ are&yo|u welco Tut-oria@ls@po-in#t.Removing the special character form of the string.The are special charactersเกิดขึ้น 11 ครั้งใน textText ที่กำหนด หลังจากลบทั้งหมดแล้ว สวัสดี คุณเป็นอย่างไรบ้าง ยินดีต้อนรับสู่ Tutorialspoint