התאמת דפוסים בטקסט
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 48 מתוך 63.
ביטוי Regex מתאר תבנית טקסט. [A-Z] מתאים לאות ASCII גדולה אחת, [0-9] מתאים לספרה אחת, {2} דורש בדיוק שתי חזרות ו־+ דורש חזרה אחת או יותר. matches בודק את כל הקלט; התאמה של תת־מחרוזת בלבד אינה מספיקה.
בתוך main:
val code = Regex("[A-Z]{2}[0-9]{3}")
println(code.matches("AB123"))כל הקלט מכיל בדיוק שתי אותיות גדולות ואחריהן שלוש ספרות.
Regex.matches דורש שכל הקלט יתאים לתבנית.
אתגר
בינוניהשלם את validCode עם הפרמטר text: String. החזר האם הטקסט מורכב בדיוק משלוש אותיות ASCII גדולות ואחריהן בדיוק שתי ספרות ASCII, ללא רווחים או תווים אחרים. השתמש ב־Regex.matches.
אלא אם צוין לעיל טווח מחמיר יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים שלמים וערכים שלמים באוספים נמצאים בטווח שבין -1000 ל־1000. טקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזר ערך מסוג Boolean. השאר את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו איבריה, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על התבנית של מספר איברים ואחריו האיברים עבור כל שורה. ה־main שסופקה מדפיסה את הערך המוחזר ואחריו תו newline אחד. רשימות משתמשות בתבנית הסטנדרטית של Kotlin עם סוגריים מרובעים; אל תדפיס תוויות נוספות.
נסו בעצמכם
fun validCode(text: String): Boolean {
// כתבו כאן את הפתרון שלכם.
return false
}
fun main() {
val text = readLine().orEmpty()
println(validCode(text))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין