איטרציה על מחרוזות חלק 1
חלק מהיחידה יסודות במסלול ה-Swift של Coddy. שיעור 71 מתוך 86.
בדומה למערכים, מחרוזות ב-Swift הן רצפים של תווים שאפשר לעבור עליהם. כך קל לעבד טקסט תו אחד בכל פעם באמצעות לולאת for-in המוכרת.
כשעוברים בלולאה על מחרוזת, Swift נותנת לך כל תו לפי הסדר:
let word = "Hello"
for char in word {
print(char)
}
// H
// e
// l
// l
// oכל char בלולאה הוא מסוג Character, ולא מסוג String. ההבחנה הזו חשובה כשצריך להשוות תווים בודדים או לתפעל אותם.
אפשר להשתמש בטכניקה הזו כדי לנתח טקסט, למשל לספור תווים מסוימים:
let message = "banana"
var countA = 0
for char in message {
if char == "a" {
countA += 1
}
}
print(countA) // 3שימו לב שכאשר משווים תו, משתמשים בתו יחיד במרכאות כמו "a". Swift מתייחסת אליו אוטומטית כאל Character כשמשווים אותו לתו אחר.
אתגר
קלכתבו פונקציה countVowels שמקבלת את text ומחזירה את המספר הכולל של התנועות במחרוזת.
עברו על כל תו במחרוזת וספרו כמה מהם תנועות (a, e, i, o, u). ספרו תנועות קטנות וגדולות.
פרמטרים:
text(String): המחרוזת לניתוח
ערך מוחזר: המספר הכולל של התנועות שנמצאו במחרוזת (Int)
דוגמה: אם text הוא "Hello World", הפונקציה צריכה להחזיר 3 (התנועות הן e, o, o).
נסו בעצמכם
func countVowels(text: String) -> Int {
// כתבו כאן קוד
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
7קלט/פלט בסיסי
פונקציית ההדפסהאינטרפולציה של מחרוזותקלט באמצעות ReadLineהמרת טיפוסיםחזרה – עד 120חזרה – אמת או שקר3ערכים אופציונליים
מהם ערכים אופציונלייםשליפת ערך באמצעות If LetGuard Letאופרטור איחוד עם Nilסיכום – שליפה בטוחה של ערך9לולאות
לולאת For-Inלולאת Whileלולאת Repeat-WhileBreakContinueחזרה – עצרתטווחים בלולאותלולאה מקוננתחזרה – קלט דינמיתרגלו בעצמכם: Swift אונליין