Menu
Coddy logo textTech

פיצול וחיבור

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

trim מסירה רווחים בתחילת הטקסט ובסופו. split מפרידה טקסט לחלקים באמצעות מפריד, ו־joinToString מחברת חלקים באמצעות מפריד לבחירתך. הפעולות האלה מאפשרות לך לנרמל קלט פשוט שמופרד באמצעות מפרידים. כאן המפריד הוא טקסט מילולי, ולא ביטוי רגולרי.

בתוך main:

val parts = " red, blue ,green ".trim().split(",").map { it.trim() }
println(parts.joinToString(" | "))

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

חתוך שדות בודדים לאחר הפיצול כאשר יש להסיר רווחים מסביב לשדות.

challenge icon

אתגר

בינוני

השלם את cleanFields עם הפרמטרים text: String. פצל את הטקסט לפי פסיקים מילוליים, הסר רווחים מתחילת כל שדה ומסופו, והשמט שדות ריקים. החזר את השדות הנותרים לפי סדר הקלט.

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

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

נסו בעצמכם

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

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

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

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