ตัวอย่างการบรรยายพร้อมผู้ให้คำปรึกษาซึ่งเป็นส่วนหนึ่งของหลักสูตร Codegym University ลงทะเบียนสำหรับหลักสูตรเต็ม
1 การเปรียบเทียบสตริง
หนึ่งในการดำเนินการทั่วไปกับสตริงคือการเปรียบเทียบ คลาสสตริงมีเมธอดต่างๆ มากกว่า 10 วิธีที่ใช้ในการเปรียบเทียบสตริงหนึ่งกับสตริงอื่น ด้านล่างนี้เราจะพิจารณา 8 รายการหลัก
| วิธีการ | คำอธิบาย |
|---|---|
|
สตริงจะถือว่าเท่ากันหากอักขระทั้งหมดตรงกัน |
|
เปรียบเทียบสตริง โดยไม่สนใจตัวพิมพ์เล็กและใหญ่ (ไม่สนใจว่าจะเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก) |
|
เปรียบเทียบสตริง ส่งกลับจำนวนอักขระที่ตรงกันจากจุดเริ่มต้นของสตริง |
|
ส่งกลับจำนวนของอักขระที่ตรงกันจากจุดเริ่มต้นของสตริง ละเว้นตัวพิมพ์เล็กและใหญ่ |
|
เปรียบเทียบส่วนของสตริง |
|
ตรวจสอบว่าสตริงปัจจุบันเริ่มต้นด้วยสตริงหรือไม่prefix |
|
ตรวจสอบว่าสตริงปัจจุบันลงท้ายด้วยสตริงหรือไม่suffix |
สมมติว่าคุณต้องการเขียนโปรแกรมที่ขอเส้นทางไปยังไฟล์จากผู้ใช้ จากนั้นตรวจสอบประเภทไฟล์ตามนามสกุล รหัสของโปรแกรมดังกล่าวอาจมีลักษณะดังนี้:
| รหัส | หมายเหตุ |
|---|---|
|
สร้างScannerวัตถุอ่านบรรทัดจากคอนโซล ตรวจสอบว่าสตริง pathลงท้ายด้วยสตริงที่กำหนด หรือไม่ |
2 ค้นหาสตริงย่อย
หลังจากเปรียบเทียบสตริงแล้ว การดำเนินการที่นิยมรองลงมาคือการค้นหาสตริงหนึ่งภายในอีกสตริงหนึ่ง คลาส String ยังมีวิธีการบางอย่างสำหรับสิ่งนี้:
| วิธีการ | คำอธิบาย |
|---|---|
|
ค้นหาสตริงstrในสตริงปัจจุบัน ส่งกลับดัชนีของอักขระตัวแรกของเหตุการณ์แรก |
|
ค้นหาสตริงstrในสตริงปัจจุบัน โดยข้ามindexอักขระตัว แรก ส่งกลับดัชนีของการเกิดขึ้น |
|
ค้นหาสตริงstrในสตริงปัจจุบัน โดยเริ่มจากจุดสิ้นสุด ส่งกลับดัชนีของการเกิดขึ้นครั้งแรก |
|
ค้นหาสตริงstrในสตริงปัจจุบันจากจุดสิ้นสุด โดยข้ามindexอักขระตัว แรก |
|
ตรวจสอบว่าสตริงปัจจุบันตรงกับรูปแบบที่ระบุโดยนิพจน์ทั่วไปหรือไม่ |
indexOf(String)และวิธีindexOf(String, index)การมักจะใช้ร่วมกัน เมธอดแรกให้คุณค้นหาการเกิดขึ้นครั้งแรกของสตริงย่อยที่ส่งผ่านในสตริงปัจจุบัน และวิธีที่สองช่วยให้คุณค้นหาเหตุการณ์ที่สอง สาม ฯลฯ ได้โดยการข้ามอักขระดัชนีตัวแรก
สมมติว่าเรามี url เช่น " https://domain.com/about/reviews " และเราต้องการแทนที่ชื่อโดเมนด้วย " codegym.cc " URL สามารถมีชื่อโดเมนต่างๆ ได้ทุกประเภท แต่เราทราบข้อมูลต่อไปนี้:
- ชื่อโดเมนนำหน้าด้วยเครื่องหมายทับสองตัว — "//"
- ชื่อโดเมนตามด้วยเครื่องหมายทับ — "
/"
นี่คือลักษณะของรหัสสำหรับโปรแกรมดังกล่าว:
| รหัส | หมายเหตุ |
|---|---|
|
สร้างวัตถุสแกนเนอร์ อ่านบรรทัดจากคอนโซล รับดัชนีของการเกิดขึ้นครั้งแรกของสตริง " //" เราได้รับดัชนีของการเกิดขึ้นครั้งแรกของสตริงแต่ /ดูเฉพาะหลังจากอักขระที่เกิดขึ้น เราได้รับสตริงจากจุดเริ่มต้นไปยังจุดสิ้นสุดของอักขระ เราได้รับสตริงจากจุดสิ้นสุด เราเชื่อมสตริงและโดเมนใหม่เข้าด้วยกัน///// |
เมธอดlastIndexOf(String)and lastIndexOf(String, index)ทำงานในลักษณะเดียวกัน เฉพาะการค้นหาที่ดำเนินการจากจุดสิ้นสุดของสตริงไปยังจุดเริ่มต้น
3 การสร้างสตริงย่อย
ตัวอย่างการบรรยายพร้อมผู้ให้คำปรึกษาซึ่งเป็นส่วนหนึ่งของหลักสูตร Codegym University ลงทะเบียนสำหรับหลักสูตรเต็ม
นอกจากการเปรียบเทียบสตริงและการค้นหาสตริงย่อยแล้ว ยังมีอีกวิธีหนึ่งที่เป็นที่นิยมมาก นั่นคือ การรับสตริงย่อยจากสตริง ดังตัวอย่างก่อนหน้านี้ที่แสดงให้คุณเห็นsubstring()การเรียกใช้เมธอดที่ส่งคืนส่วนหนึ่งของสตริง
นี่คือรายการ 8 วิธีที่ส่งคืนสตริงย่อยจากสตริงปัจจุบัน:
| วิธีการ | คำอธิบาย |
|---|---|
|
beginIndex..endIndexส่งกลับสตริงย่อยที่ ระบุโดยช่วงดัชนี |
|
ทำซ้ำสตริงปัจจุบัน n ครั้ง |
|
ส่งคืนสตริงใหม่: แทนที่อักขระoldCharด้วยอักขระnewChar |
|
แทนที่สตริงย่อยแรกที่ระบุโดยนิพจน์ทั่วไปในสตริงปัจจุบัน |
|
แทนที่สตริงย่อยทั้งหมดในสตริงปัจจุบันที่ตรงกับนิพจน์ทั่วไป |
|
แปลงสตริงเป็นตัวพิมพ์เล็ก |
|
แปลงสตริงเป็นตัวพิมพ์ใหญ่ |
|
ลบช่องว่างทั้งหมดที่จุดเริ่มต้นและจุดสิ้นสุดของสตริง |
นี่คือบทสรุปของวิธีการที่มีอยู่:
substring(int beginIndex, int endIndex)วิธี
เมธอดsubstringส่งกลับสตริงใหม่ที่ประกอบด้วยอักขระในสตริงปัจจุบัน เริ่มต้นที่อักขระที่มีดัชนีbeginIndexและสิ้นสุดendIndexที่ เช่นเดียวกับช่วงเวลาทั้งหมดใน Java อักขระที่มีดัชนีendIndexจะไม่รวมอยู่ในช่วงเวลา ตัวอย่าง:
| รหัส | ผลลัพธ์ |
|---|---|
|
|
|
|
|
|
|
|
หากendIndexไม่ได้ระบุพารามิเตอร์ (ซึ่งเป็นไปได้) สตริงย่อยจะถูกดึงจากอักขระที่beginIndexไปยังจุดสิ้นสุดของสตริง
repeat(int n)วิธี
nวิธีการทำซ้ำจะทำซ้ำ เวลาสตริงปัจจุบัน ตัวอย่าง:
| รหัส | ผลลัพธ์ |
|---|---|
|
|
|
|
|
|
|
|
replace(chat oldChar, char newChar)วิธี
เมธอดreplace()ส่งคืนสตริงใหม่ที่อักขระทั้งหมด ถูก แทนที่oldCharด้วยอักขระ newCharสิ่งนี้จะไม่เปลี่ยนความยาวของสตริง ตัวอย่าง:
| รหัส | ผลลัพธ์ |
|---|---|
|
|
|
|
|
|
|
|
replaceFirst()และreplaceAll()วิธีการ
เมธอดreplaceAll()จะแทนที่สตริงย่อยทั้งหมดที่เกิดขึ้นด้วยอีกสตริงหนึ่ง เมธอดreplaceFirst()แทนที่การเกิดขึ้นครั้งแรกของสตริงย่อยที่ผ่านด้วยสตริงย่อยที่ระบุ สตริงที่จะแทนที่ระบุโดยนิพจน์ทั่วไป เราจะเจาะลึกไปที่ Regular Expression ในภารกิจJava Multithreading
ตัวอย่าง:
| รหัส | ผลลัพธ์ |
|---|---|
|
|
|
|
|
|
|
|
toLowerCase() and toUpperCase()วิธีการ
เราได้รู้จักเมธอดเหล่านี้เมื่อเราเรียนรู้เกี่ยวกับการเรียกเมธอดของStringคลาส
trim()วิธี
วิธีtrim()การลบช่องว่างนำหน้าและต่อท้ายจากสตริง ไม่สัมผัสช่องว่างที่อยู่ภายในสตริง (เช่น ไม่อยู่ที่จุดเริ่มต้นหรือจุดสิ้นสุด) ตัวอย่าง:
| รหัส | ผลลัพธ์ |
|---|---|
|
|
|
|
|
|
|
|
GO TO FULL VERSION