ตัวอย่างการบรรยายพร้อมผู้ให้คำปรึกษาซึ่งเป็นส่วนหนึ่งของหลักสูตร 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