Swift:
แปลงสตริงเป็นตัวเล็ก
วิธีการ:
Swift ทำให้เรื่องนี้ง่ายดายด้วยคุณสมบัติที่เรียกว่า lowercased
นี่คือวิธีที่คุณใช้มัน:
let originalString = "Hello, World!"
let lowercasedString = originalString.lowercased()
print(lowercasedString) // "hello, world!"
ผลลัพธ์ตัวอย่าง:
hello, world!
ลงลึก:
ในอดีตการรักษาความสอดคล้องของตัวอักษรในสตริงเป็นเรื่องสำคัญในการเขียนโปรแกรม เนื่องจากคอมพิวเตอร์ในช่วงแรกๆ มีความแม่นยำเกี่ยวกับตัวพิมพ์อย่างสูง ใน Swift, lowercased()
เป็นเมธอดที่สามารถใช้งานได้กับตัวอย่างของประเภท String
โดยการเรียกใช้นั้น คุณสามารถแปลงอักขระทั้งหมดภายในสตริงที่มีรูปแบบตัวพิมพ์เล็กเป็นรูปแบบตัวพิมพ์เล็ก
ทางเลือกอื่นสำหรับ lowercased()
อาจเป็นการเดินทางผ่านสตริงและแทนที่แต่ละอักขระด้วยเทียบเท่าตัวพิมพ์เล็กโดยใช้ฟังก์ชันแมป แต่อันที่จริงนั่นคือการคิดค้นวงล้อใหม่
การทำให้สตริงเป็นตัวพิมพ์เล็กมีความละเอียดอ่อนบางประการ ตัวอย่างเช่น เมธอด lowercased()
ใช้ locale ปัจจุบันเพื่อจัดการกับกฎการตั้งค่าตัวพิมพ์ของภาษาเฉพาะ ซึ่งไม่ได้เป็นพฤติกรรมที่ต้องการเสมอไป หากคุณต้องการทำการแปลงที่ไม่ขึ้นอยู่กับ locale คุณสามารถใช้ lowercased(with: Locale?)
และส่ง nil
เป็น Locale:
let turkishString = "İstanbul"
let lowercasedTurkishString = turkishString.lowercased(with: nil)
print(lowercasedTurkishString) // "i̇stanbul", ถูกต้องตาม Unicode, แต่อาจคาดหวัง 'I' โดยไม่มีจุดในตุรกี
การทำงานของเมธอด lowercased()
ใต้ฮูดใช้มาตรฐาน Unicode ซึ่งรวมกฎการแมปตัวละครที่ซับซ้อนสำหรับอักขระในสคริปต์หลากหลาย ซึ่งไม่ใช่แค่เรื่องง่ายๆ ของการแทน ‘A’ ด้วย ‘a’
ดูเพิ่มเติม:
เพื่อสำรวจเพิ่มเติมเกี่ยวกับสตริงและการแปลงอักขระใน Swift, ลองดูทรัพยากรต่อไปนี้:
- คู่มือเอกสาร Swift String and Characters: Swift.org
- รายละเอียดการแมป case ของ Unicode: Unicode Standard
- บทสนทนาเกี่ยวกับการเปรียบเทียบสตริงและ locale: บทความ NSHipster เกี่ยวกับ Locale