איטרציה על מחרוזות
חלק מהיחידה יסודות במסלול ה-Ruby של Coddy. שיעור 67 מתוך 88.
בדומה למערכים, אפשר לעבור על מחרוזות ב-Ruby תו אחר תו. המתודה each_char מאפשרת לעבד כל תו במחרוזת בנפרד.
כך זה עובד:
word = "Ruby"
word.each_char do |char|
puts char
endהפעולה הזו מדפיסה כל תו בשורה נפרדת: R, u, b, y. משתנה הבלוק char מכיל תו אחד בכל פעם, כשהאיטרטור עובר על המחרוזת.
אם אתה צריך גם את התו וגם את המיקום שלו, השתמש ב-each_char.with_index:
word = "Hi"
word.each_char.with_index do |char, index|
puts "#{index}: #{char}"
endהפלט הוא:
0: H
1: iשיטה שימושית נוספת היא chars, שממירה מחרוזת למערך של התווים שלה. כך אפשר להשתמש בכל שיטות המערך שכבר למדת:
letters = "abc".chars
puts letters # פלט: a, b, cהשיטות האלה מועילות כשצריך לנתח טקסט, לספור תווים מסוימים או לשנות מחרוזות תו אחר תו.
אתגר
קלקראו שורת קלט אחת שמכילה מחרוזת (למשל, hello).
השתמשו ב־each_char.with_index כדי לעבור על המחרוזת ולהדפיס כל תו יחד עם המיקום שלו. כל שורה צריכה להיות בפורמט הזה: Position 0: h
לאחר הדפסת כל התווים והמיקומים שלהם, הדפיסו בשורה חדשה את המספר הכולל של התווים במחרוזת, בפורמט הזה: Total characters: 5
לדוגמה, אם הקלט הוא hello, הפלט צריך להיות:
Position 0: h
Position 1: e
Position 2: l
Position 3: l
Position 4: o
Total characters: 5אם הקלט הוא Ruby, הפלט צריך להיות:
Position 0: R
Position 1: u
Position 2: b
Position 3: y
Total characters: 4אם הקלט הוא code, הפלט צריך להיות:
Position 0: c
Position 1: o
Position 2: d
Position 3: e
Total characters: 4אם הקלט הוא A, הפלט צריך להיות:
Position 0: A
Total characters: 1נסו בעצמכם
# קראו את הקלט
str = gets.chomp
# TODO: כתבו את הקוד שלכם למטה
# השתמשו ב-each_char.with_index כדי לעבור על המחרוזת
# הדפיסו כל תו עם מיקומו בפורמט: Position X: char
# הדפיסו את מספר התווים הכולל בפורמט: Total characters: Xהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורים חלק 2
אופרטורים לוגיים חלק 1אופרטורים לוגיים חלק 2חזרה – לוגיקה פשוטהאופרטורים לוגיים חלק 3אופרטורים לוגיים חלק 42משתנים וטיפוסי נתונים
מספרים ומשתניםטיפוס הנתונים מחרוזתטיפוס הנתונים בוליאניטיפוס הנתונים Symbolבדיקת טיפוסי נתוניםמוסכמות שמותסיכום – יצירת משתנים8לולאות
לולאת for עם טווחיםלולאת whilebreaknextסיכום – עצרתלולאת timesלולאת untilלולאות מקוננותסיכום – קלט דינמי3אופרטורים חלק 1
אופרטורים אריתמטייםאופרטור מודולוקיצורי דרך אריתמטייםסיכום – חשבון פשוטאופרטורי השוואה6קלט ופלט בסיסיים
פלט באמצעות putsפלט באמצעות print ו־pפלט באמצעות משתניםקלט באמצעות getsשיטת Chompהמרת טיפוסיםחזרה — מחשבון גילחזרה — אמת או שקר9מתודות
הגדרת מתודהפרמטרים של מתודהערכי החזרהסיכום - מתודת Sigmaסיכום - מתודת האימותערכי ברירת מחדל של פרמטרים15מעקב אחר הוצאות יומיות
סקירת הפרויקטיציאה מהתוכניתתרגלו בעצמכם: קומפיילר Ruby אונליין