การนับและวนซ้ำอักขระ
วนซ้ำข้อความอย่างถูกต้องเมื่อมีอีโมจิและเครื่องหมายกำกับเสียง
การนับและวนซ้ำอักขระ เป็นบทเรียน Swift Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Swift Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
การนับอักขระ
คุณสมบัติ count ของ String จะส่งคืนจำนวนค่า Character ซึ่งเท่ากับจำนวนอักขระที่ผู้ใช้รับรู้ได้
let word = "Swift"
print(word.count)จำนวนสอดคล้องกับอักขระที่มองเห็น
เนื่องจาก Swift นับกลุ่มกราฟีม ตัวอักษรที่มีเครื่องหมายกำกับหรือ emoji จึงนับเป็นหนึ่งค่า ซึ่งตรงกับสิ่งที่ผู้อ่านมองเห็น
let cafe = "caf\u{e9}"
print(cafe.count)ความถูกต้องในการนับ emoji
emoji หนึ่งตัวนับเป็นอักขระหนึ่งตัว แม้ว่าภายในจะครอบคลุมหลายไบต์และหลายสเกลาร์ก็ตาม
let s = "Hi\u{1F600}"
print("Characters:", s.count)emoji ซับซ้อนก็นับเป็นหนึ่งตัว
แม้แต่ emoji ที่มีหลายสเกลาร์ เช่น emoji รูปครอบครัวหรือ flag ก็นับเป็น Character เดียว ต่างจากการนับไบต์หรือสเกลาร์แบบง่าย ๆ
let flag = "\u{1F1FA}\u{1F1F8}"
print("Characters:", flag.count)
print("Scalars:", flag.unicodeScalars.count)การวนซ้ำด้วย for-in
ลูป for-in ที่วนผ่านสตริงจะเข้าถึง Character แต่ละตัวตามลำดับ โดยข้ามกลุ่มกราฟีมได้อย่างถูกต้อง
for ch in "a\u{1F600}b" {
print(ch)
}การนับอักขระเฉพาะ
คุณสามารถใช้การวนซ้ำร่วมกับตัวนับ หรือใช้ filter เพื่อนับจำนวนครั้งที่อักขระหนึ่งปรากฏ
let text = "banana"
let aCount = text.filter { $0 == "a" }.count
print("a appears:", aCount)การตรวจสอบว่าว่างหรือไม่
ควรใช้ isEmpty แทนการเปรียบเทียบ count กับศูนย์ เพราะอ่านเข้าใจได้ชัดเจนกว่าและอาจทำงานได้เร็วกว่า
let s = ""
print(s.isEmpty)
print("hello".isEmpty)การเข้าถึงด้วยดัชนีไม่ใช้จำนวนเต็ม
เนื่องจากอักขระมีขนาดแตกต่างกัน สตริงของ Swift จึงใช้ String.Index แทนดัชนีจำนวนเต็ม
let word = "Swift"
let first = word[word.startIndex]
print(first)การวนซ้ำด้วยดัชนี
คุณสามารถวนซ้ำโดยใช้ indices เมื่อต้องการทั้งตำแหน่งและอักขระ
let word = "Hi"
for i in word.indices {
print(word[i])
}การแจกแจงพร้อมค่าตำแหน่งเลื่อน
ใช้ enumerated() เพื่อรับค่าตำแหน่งเลื่อนจำนวนเต็มที่เพิ่มขึ้นไปพร้อมกับอักขระแต่ละตัว
for (i, ch) in "abc".enumerated() {
print(i, ch)
}เหตุใดการนับอย่างถูกต้องจึงสำคัญ
การนับตามกลุ่มกราฟีมทำให้การตรวจสอบความยาว การตัดข้อความ และการตรวจสอบความถูกต้องทำงานได้อย่างเป็นธรรมชาติสำหรับข้อความนานาชาติและ emoji
let name = "Jose\u{301}"
print("Visible length:", name.count)ตรวจสอบความเข้าใจ
ทบทวนว่า Swift นับ emoji หนึ่งตัวอย่างไร
สรุป: การนับและการวนซ้ำอักขระ
คุณได้เรียนรู้ว่า count ส่งคืนจำนวนกลุ่มกราฟีม ทำให้ emoji และตัวอักษรที่มีเครื่องหมายกำกับนับเป็นหนึ่งค่า ว่า for-in วนอักขระได้อย่างถูกต้อง ว่าสตริงใช้ String.Index ไม่ใช่จำนวนเต็ม และ enumerated() ให้ค่าตำแหน่งเลื่อน
let s = "ab\u{1F600}"
print("Count:", s.count)
for (i, ch) in s.enumerated() { print(i, ch) }คำถามที่พบบ่อย
บทเรียน “การนับและวนซ้ำอักขระ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การนับและวนซ้ำอักขระ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Swift Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Swift Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การนับและวนซ้ำอักขระ”
วนซ้ำข้อความอย่างถูกต้องเมื่อมีอีโมจิและเครื่องหมายกำกับเสียง คุณปฏิบัติ Swift Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Swift Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Swift Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การนับและวนซ้ำอักขระ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Swift Academy นี้ได้ไหม
ได้ บทเรียน Swift Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- อักขระและกลุ่มกราฟีม
- Unicode Scalars และจุดรหัส
- การนับและวนซ้ำอักขระ
- มุมมองการเข้ารหัส: utf8, utf16, unicodeScalars