Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เมธอด casefold() ของสตริงใน Python

ในบทช่วยสอนนี้ เราจะอภิปรายเมธอดสตริง str.casefold() ซึ่งไม่รับอาร์กิวเมนต์ ค่าที่คืนคือสตริงที่เหมาะสมสำหรับการเปรียบเทียบแบบไม่สนใจตัวพิมพ์เล็ก-ใหญ่ (caseless comparisons)

การเปรียบเทียบแบบไม่สนใจตัวพิมพ์เล็ก-ใหญ่คืออะไร? ตัวอย่างเช่น ตัวอักษรเยอรมันตัวพิมพ์เล็ก ß เทียบเท่ากับ ss เมธอด str.casefold() จะคืน ß เป็น ss และแปลงตัวอักษรทั้งหมดเป็นตัวพิมพ์เล็ก

ตัวอย่าง

# กำหนดสตริง
string = "TUTORIALSPOINT"

# พิมพ์เวอร์ชัน casefold() ของสตริง
print(string.casefold())

ผลลัพธ์

ถ้ารันโปรแกรมข้างต้น จะได้ผลลัพธ์ดังนี้:

tutorialspoint

มาดูตัวอย่างที่การเปรียบเทียบแบบไม่สนใจตัวพิมพ์เล็ก-ใหญ่ทำงาน หากเปรียบเทียบสตริง ßtutorialspoint กับ sstutorialspoint โดยตรง จะได้ False มาดูโค้ด

ตัวอย่าง

# กำหนดสตริง
string = "ßtutorialspoint"
second_string = "sstutorialspoint"

# เปรียบเทียบสองสตริง
print(string == second_string)

ผลลัพธ์

ตามที่คาดไว้ ผลลัพธ์ของโปรแกรมข้างต้นคือ False

False

ตอนนี้เปรียบเทียบเดียวกันแต่ใช้เมธอด str.casefold()

ตัวอย่าง

# กำหนดสตริง
string = "ßtutorialspoint"
second_string = "sstutorialspoint"

# เปรียบเทียบสองสตริง
print(string.casefold() == second_string)

ผลลัพธ์

ถ้ารันโค้ดข้างต้น จะได้ผลลัพธ์ดังนี้:

True

สรุป

เมธอด casefold() แข็งแกรกกว่า lower() สำหรับการเปรียบเทียบสตริงระหว่างภาษาต่างๆ โดยเฉพาะตัวอักษรพิเศษเช่น ß