Menu
Coddy logo textTech

חיפוש והחלפה

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 49 מתוך 63.

Regex.findAll מחזירה התאמות לפי הסדר. לכל התאמה יש מחרוזת value. אפשר לעבור על ההתאמות האלה בלולאה, או לשנות אותן באמצעות map ולאסוף אותן באמצעות toList. Regex.replace מחליפה כל התאמה בטקסט ההחלפה שצוין.

בתוך main:

val digits = Regex("[0-9]+")
println(digits.replace("Box12Shelf7", "#"))

כל קבוצת ספרות רציפה היא התאמה אחת, ולכן יש שתי החלפות.

findAll עובר על ההתאמות לפי הסדר; Regex.replace מחליף את כל ההתאמות כברירת מחדל.

challenge icon

אתגר

בינוני

השלם את extractNumbers עם הפרמטר text: String. החזר כל רצף של ספרות ASCII סמוכות כמחרוזת, בסדר משמאל לימין. שמור על אפסים מובילים. החזר רשימה ריקה כשאין ספרות.

אלא אם צוינו למעלה גבולות מחמירים יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים של מספרים שלמים וערכים של מספרים שלמים באוספים הם בין -1000 ל-1000. הטקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.

החזר ערך מטיפוס List<String>. השאר את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על תבנית מספר האיברים והאיברים עבור כל שורה. הפונקציה main שסופקה מדפיסה את הערך המוחזר ואחריו תו שורה חדשה אחד. רשימות משתמשות בתבנית הסוגריים המרובעים הסטנדרטית של Kotlin; אל תדפיס תוויות נוספות.

נסו בעצמכם

fun extractNumbers(text: String): List<String> {
    // כתבו כאן את הפתרון שלכם.
    return emptyList()
}
fun main() {
    val text = readLine().orEmpty()
    println(extractNumbers(text))
}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

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