בניית טקסט ביעילות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 47 מתוך 63.
StringBuilder צובר טקסט באמצעות קריאות append, ואז toString מפיקה את ה-String הסופי. אפשר להוסיף תוויות, מספרים ומפרידים בתוך לולאה בלי לבנות מחדש באופן ידני String בלתי משתנה שלם בכל שלב. החליטו בדיוק היכן המפרידים צריכים להופיע.
בתוך main:
val result = StringBuilder()
for (n in 1..3) {
if (n > 1) result.append("-")
result.append(n)
}
println(result.toString())המפריד מתווסף לפני כל פריט מלבד הראשון, וכך נמנע מקף בסוף.
השתמשו ב־StringBuilder.append לטקסט שנבנה בהדרגה וב־toString עבור ה־String הסופי.
אתגר
בינוניהשלימו את numberLine עם הפרמטרים count: Int. השתמשו ב-StringBuilder כדי להחזיר את המספרים מ-1 עד count, מופרדים במקף יחיד, ללא מקף בתחילת הרצף או בסופו. count הוא בין 0 ל-20; אפס מחזיר מחרוזת ריקה.
אלא אם צוין לעיל טווח מחמיר יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים של מספרים שלמים וערכים של מספרים שלמים באוספים הם בין -1000 ל-1000. טקסט שסופק לצורך ניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזירו ערך מסוג String. השאירו את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על התבנית של מספר איברים ואחריו איברים עבור כל שורה. ה-main שסופק מדפיס את הערך המוחזר ואחריו תו שורה חדשה אחד. רשימות משתמשות בתבנית הסטנדרטית של Kotlin עם סוגריים מרובעים; אל תדפיסו תוויות נוספות.
נסו בעצמכם
fun numberLine(count: Int): String {
// כתבו כאן את הפתרון שלכם.
return ""
}
fun main() {
val count = readln().toInt()
println(numberLine(count))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין