Menu
Coddy logo textTech

איטרציה על מחרוזות

חלק מהיחידה יסודות במסלול ה-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

השיטות האלה מועילות כשצריך לנתח טקסט, לספור תווים מסוימים או לשנות מחרוזות תו אחר תו.

challenge icon

אתגר

קל

קראו שורת קלט אחת שמכילה מחרוזת (למשל, 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
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר Ruby אונליין