“สวัสดี อามีโก้!”
"เท่าที่ฉันรู้ Rishi ได้บอกคุณเกี่ยวกับนิพจน์ทั่วไปแล้ว"
"ใช่ มันน่าสนใจมาก"
"เยี่ยมมาก ตอนนี้ฉันจะบอกคุณเกี่ยวกับการใช้นิพจน์ทั่วไปเพื่อทำงานกับสตริง"
"เริ่มจากคำถามที่ง่ายที่สุดกันก่อน:"
1) ฉันจะตรวจสอบได้อย่างไรว่าสตริงตรงกับรูปแบบที่ระบุโดยนิพจน์ทั่วไปหรือไม่
"มีวิธีจับคู่สำหรับสิ่งนี้ คุณส่งสตริงที่มีนิพจน์ทั่วไป และวิธีการส่งกลับค่าจริงหรือเท็จ"
วิธีการ | ตัวอย่าง) |
---|---|
|
|
ผลลัพธ์:
|
2) ฉันจะแทนที่สตริงย่อยที่ตรงกันทั้งหมดด้วยสตริงที่แตกต่างกันได้อย่างไร
"มีสองวิธีสำหรับสิ่งนี้"
" วิธีการ แทนที่ทั้งหมดแทนที่เหตุการณ์ทั้งหมดของสตริงย่อยด้วยสตริงอื่น"
" เมธอดการ แทนที่ครั้งแรกแทนที่การเกิดขึ้นครั้งแรกของสตริงย่อยที่ส่งผ่านด้วยสตริงที่ระบุ"
วิธีการ | ตัวอย่าง) |
---|---|
|
|
ผลลัพธ์:
|
|
|
|
ผลลัพธ์:
|
3) ฉันจะแยกสตริงออกเป็นส่วนๆ ได้อย่างไร
"สำหรับสิ่งนี้ เรามีวิธีการแยก ซึ่งใช้มาสก์คั่น:"
วิธีการ | ตัวอย่าง) |
---|---|
|
|
ผลลัพธ์ (อาร์เรย์ของสามสาย):
|
" คลาส StringTokenizerเป็นอีกวิธีในการแยกสตริงออกเป็นส่วนๆ "
"คลาสนี้ไม่ใช้นิพจน์ทั่วไป แต่คุณเพียงแค่ส่งสตริงที่มีชุดตัวคั่น ข้อดีของวิธีนี้คือมันไม่ได้แบ่งสตริงทั้งหมดออกเป็นชิ้นๆ ทั้งหมดในคราวเดียว แต่จะค่อยๆ เคลื่อนจาก จุดเริ่มต้นสู่จุดสิ้นสุด"
"คลาสประกอบด้วยตัวสร้างและสองเมธอด คุณต้องผ่าน String ที่เราแยกออกเป็นคอนสตรัคเตอร์ พร้อมด้วยสตริงที่มีชุดของอักขระคั่น"
เมธอด nextToken ส่งคืนโทเค็นถัดไป (สตริงย่อย)
เมธอด hasMoreTokens() คืนค่าจริงหากยังมีสตริงย่อยที่ยังไม่ได้ส่งคืน
วิธีการ | ตัวอย่าง) |
---|---|
|
|
เอาต์พุตหน้าจอ:
|
"โปรดทราบว่าอักขระใดๆ ในสตริงที่สองที่ส่งผ่านไปยัง ตัวสร้าง StringTokenizerจะถือเป็นตัวคั่น"
"อีกครั้ง ทุกอย่างดูเหมือนจะชัดเจน ฉันอาจไม่สามารถเขียนโค้ดนี้ทั้งหมดด้วยตัวเองได้ในทันที แต่ฉันเข้าใจว่าเกิดอะไรขึ้นที่นี่"
"ดีมาก เราจะถือว่าคุณเข้าใจหัวข้อนี้แล้ว"