חיפוש במחרוזות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 2 מתוך 78.
האופרטור in אומר לך אם טקסט מופיע במחרוזת. כשצריך יותר מתשובת כן או לא, למחרוזות יש שיטות חיפוש:
contains(text)מחזירהtrueאם הטקסט מופיע במקום כלשהו, כמוinbegins_with(text)ו-ends_with(text)בודקות רק את ההתחלה או את הסוףfind(text)מחזירה את האינדקס שבו הטקסט מופיע לראשונה, או-1אם הוא לא מופיעrfind(text)מחזירה את האינדקס של ההופעה האחרונהcount(text)מחזירה כמה פעמים הטקסט מופיע
var email := "alice@coddy.tech"
print(email.begins_with("alice"))
print(email.ends_with(".tech"))
print(email.find("@"))
print(email.find("x"))
print(email.count("c"))true
true
5
-1
3הפונקציה find() מקבלת ארגומנט שני אופציונלי: האינדקס שבו החיפוש מתחיל. השתמשו בו כדי למצוא את המופע הבא אחרי אחד שכבר מצאתם:
var text := "one fish, two fish"
var first := text.find("fish")
print(first)
print(text.find("fish", first + 1))4
14השיטות האלה רגישות לאותיות גדולות וקטנות: "Hello".contains("hello") היא false. תחילה יש להמיר את המחרוזת באמצעות to_lower(), או להשתמש בגרסאות שמתעלמות מההבדל בין אותיות גדולות לקטנות: findn(), containsn() ו-countn().
אתגר
קלהתוכנית קוראת כתובת דוא"ל לתוך email. בדקו שהיא עומדת בכל הכללים הבאים:
- היא מכילה בדיוק סימן
@אחד - היא לא מתחילה ב-
@ - היא לא מכילה רווחים
- היא מסתיימת ב-
.com, ב-.orgאו ב-.tech, בכל שילוב של אותיות גדולות וקטנות
הדפיסו valid אם כל הכללים מתקיימים, אחרת invalid. עבור הקלט alice@CODDY.TECH, הפלט הוא:
validנסו בעצמכם
extends Node
func _ready():
var email := OS.read_string_from_stdin()
# הדפס valid או invalid
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
2קבלת החלטות מתקדמת
התאמה עם משתניםתנאי סף להתאמהתבניות מערכיםתבניות מילוניםבדיקות חברותסיכום – מנתח פקודות5אפליקציית ספר אנשי קשר
הצגת התפריטהוספת איש קשר8מנהל רשומות תלמידים
סקירת הפרויקטהוספת תלמידתרגלו בעצמכם: קומפיילר GDScript אונליין