ในกระบวนการใช้สตริง เราจำเป็นต้องแก้ไขเนื้อหาของสตริงไม่มากก็น้อย แม้ว่าสตริงจะไม่เปลี่ยนรูป แต่เราสามารถใช้วิธีการส่งคืนสำเนาที่แก้ไขได้
ด้านล่างนี้เราจะแนะนำวิธีการแก้ไขสตริงที่ใช้กันทั่วไปหลายวิธี ได้แก่ lower(), upper(), lstrip(), rstrip () และ strip()
วิธีทั้งสองนี้คล้ายกับวิธีทดสอบในส่วนก่อนหน้า วิธีแรกจะส่งคืนสำเนาซึ่งอักขระทั้งหมดในสตริงจะถูกแปลงเป็นตัวพิมพ์เล็ก ในขณะที่วิธีหลังจะส่งคืนสำเนาซึ่งอักขระทั้งหมดในสตริงจะถูกแปลงเป็นตัวพิมพ์ใหญ่ อักขระ.
ดูตัวอย่างต่อไปนี้:
>>>my_str='ABCabc'#String ที่มีตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก >>>>my_str.upper()#สตริงตัวพิมพ์ใหญ่ทั้งหมด 'ABCABC'>>>my_str.lower()#สตริงตัวพิมพ์เล็กทั้งหมด 'abcabc' >>>my_str# ดูอีกครั้งเพื่อดูว่าสตริงเดิมมีการเปลี่ยนแปลง 'ABCabc' หรือไม่
จะต้องสังเกตว่ามีการส่งคืนสำเนาและใช้วิธีการ แต่ไม่มีการเปลี่ยนแปลงสตริงดั้งเดิม หากเราต้องการรับสำเนาเราสามารถเปลี่ยนชื่อหรือเขียนทับโดยตรง
>>>my_str=my_str.upper()#เขียนทับ my_str โดยตรง>>>my_str'ABCABC'
ประเภทหลักของวิธีการทั้งสามนี้ใช้เพื่อจัดการกับอักขระช่องว่างในสตริง
1) เมธอด lstrip() ส่งคืนสำเนา โดยลบอักขระช่องว่างนำหน้าทั้งหมดออกจากสตริงในสำเนา
2) เมธอด rstrip() จะส่งคืนสำเนา และอักขระช่องว่างต่อท้ายทั้งหมดจะถูกลบออกจากสตริงในสำเนา
3) เมธอด strip() จะส่งคืนสำเนา โดยนำอักขระช่องว่างนำหน้าและต่อท้ายทั้งหมดออกจากสตริงในสำเนา
ก่อนอื่นเรามากำหนดสตริง my_str ='ntwww.dotcpp.comtn' แล้วดูภาพด้านล่าง:
ในรูป อักขระนำหน้าคืออักขระว่างหน้าสตริง อักขระนำหน้าสอดคล้องกับเมธอด lstrip() อักขระต่อท้ายสอดคล้องกับเมธอด rstrip() สอดคล้องกับการรวมกันของทั้งสองวิธี
มาดูโค้ดกัน:
>>>my_str='ntwww.dotcpp.comtn'>>>my_str.rstrip()#ส่งคืนสำเนาโดยลบอักขระช่องว่างต่อท้ายออก'nt>>>my_str.lstrip()# ส่งคืนสำเนาของ 'www.dotcpp.comtn' ที่เอาอักขระช่องว่างนำหน้าออก >>>my_str.strip()#ส่งคืนสำเนาของ 'www.dotcpp.com' ที่เอาอักขระช่องว่างนำหน้าและต่อท้ายออก
มาทำความเข้าใจตัวอย่างนี้ตามโค้ดและรูปภาพด้านบน ในแง่ของคนทั่วไป สำเนาที่ส่งคืนโดยส่วนที่นำจะลบส่วนหน้า สำเนาที่ส่งคืนโดยส่วนต่อท้ายจะลบส่วนต่อไปนี้ และสำเนาที่ส่งคืนโดยแถบ () วิธีการลบส่วนที่นำหน้าและส่วนต่อท้ายเข้าด้วยกัน
เมื่อเราเขียนโปรแกรม บางครั้งเราจำเป็นต้องค้นหาองค์ประกอบในสตริง นอกเหนือจากเมธอด find() และเมธอด index() ที่กล่าวถึงข้างต้น บางครั้งเรายังต้องใช้เมธอด endwith() และเมธอด startwith()
รูปแบบไวยากรณ์ของมันคือ:
my_str.endswith (สตริงย่อย)
my_str คือชื่อสตริง และพารามิเตอร์สตริงย่อยคือสตริง หากส่วนท้ายของสตริงเป็นสตริงย่อย จะส่งคืนค่า True มิฉะนั้นจะส่งคืนค่า False
รูปแบบไวยากรณ์ของมันคือ:
my_str.startswith (สตริงย่อย)
my_str คือชื่อสตริง และพารามิเตอร์สตริงย่อยคือสตริง หากการย่อยอยู่ที่จุดเริ่มต้นของสตริง ระบบจะส่งกลับค่า True มิฉะนั้นจะส่งกลับค่าเท็จ
ตัวอย่างเช่น:
>>>my_str='www.dotcpp.com'>>>my_str.endswith('.com')True>>>my_str.startswith('www.')จริง
วิธีการแทนที่ () ส่งคืนสำเนาซึ่งแทนที่อักขระที่เราต้องการแทนที่ รูปแบบไวยากรณ์ของมันคือ:
my_str.แทนที่(เก่าใหม่)
my_str คือชื่อสตริง old คืออักขระที่จะถูกแทนที่ และ new คืออักขระที่จะถูกแทนที่
ตัวอย่างเช่น:
>>>my_str='www.dotcpp.com'>>>my_str.replace('w','m')'mmm.dotcpp.com'
เมื่อวิธีนี้ถูกแทนที่ จะยังคงเป็นสำเนาที่ส่งคืน โดยจะแทนที่อักขระทั้งหมดที่ต้องถูกแทนที่ โดยไม่เปลี่ยนแปลงสตริงเดิม