Διαδρομές
/
Crystal
Crystal
/
Ασκήσεις
/
Ο έρωτας του λυκείου
Ο έρωτας του λυκείου

Ο έρωτας του λυκείου

Άσκηση εκμάθησης

Εισαγωγή

Η String διαθέτει αρκετές μεθόδους που μπορούν να χρησιμοποιηθούν για τον χειρισμό συμβολοσειρών.
Αυτές οι μέθοδοι καλούνται πάνω στην ίδια τη συμβολοσειρά και συχνά συνδυάζονται αλυσιδωτά για να εκτελέσουν πολλαπλές πράξεις σε μια συμβολοσειρά.

Ακολουθεί μια λίστα με μερικές από τις πιο συνηθισμένες μεθόδους. Δες την τεκμηρίωση του API της String για μια πλήρη λίστα μεθόδων.

String#upcase & String#downcase

Η μέθοδος upcase επιστρέφει μια νέα συμβολοσειρά όπου όλοι οι χαρακτήρες έχουν μετατραπεί σε κεφαλαία.

"hello".upcase
# => "HELLO"

Η μέθοδος downcase επιστρέφει μια νέα συμβολοσειρά όπου όλοι οι χαρακτήρες έχουν μετατραπεί σε πεζά.

"HELLO".downcase
# => "hello"

String#sub & String#gsub

Η Crystal διαθέτει μεθόδους για την αντικατάσταση τμημάτων μιας συμβολοσειράς. Αυτές είναι οι sub (υποκατάσταση) και gsub (καθολική υποκατάσταση).

Αυτές οι μέθοδοι δέχονται ως πρώτο όρισμα μια συμβολοσειρά, έναν χαρακτήρα ή μια κανονική έκφραση και ως δεύτερο όρισμα μια συμβολοσειρά ή έναν χαρακτήρα. Το πρώτο όρισμα είναι το τμήμα της συμβολοσειράς που θα αντικατασταθεί, και το δεύτερο όρισμα είναι η αντικατάσταση. Το Char και οι κανονικές εκφράσεις θα εξηγηθούν σε επόμενες έννοιες.

Η μέθοδος sub αντικαθιστά την πρώτη εμφάνιση του πρώτου ορίσματος με το δεύτερο όρισμα.

"hello".sub("l", "r")
# => "herlo"

Η μέθοδος gsub λειτουργεί όπως η sub, αλλά αντικαθιστά όλες τις εμφανίσεις του πρώτου ορίσματος με το δεύτερο όρισμα.

"hello".gsub("l", "r")
# => "herro"

String#chomp & String#strip

Οι chomp και strip μπορούν να χρησιμοποιηθούν για να αφαιρέσεις ανεπιθύμητους χαρακτήρες από μια συμβολοσειρά.

Η μέθοδος chomp αφαιρεί από προεπιλογή τους τελευταίους χαρακτήρες \r, \n ή \r\n από μια συμβολοσειρά. Αν η μέθοδος κληθεί με ένα όρισμα, θα αφαιρέσει τη συγκεκριμένη τιμή από το τέλος της συμβολοσειράς, εφόσον αυτή υπάρχει εκεί.

"hello\n".chomp
# => "hello"

"hello".chomp("llo")
# => "he"

Από προεπιλογή, η μέθοδος strip αφαιρεί όλα τα κενά διαστήματα από την αρχή και το τέλος μιας συμβολοσειράς. Αν η μέθοδος κληθεί με ένα όρισμα, θα αφαιρέσει αυτό το όρισμα από την αρχή και το τέλος της συμβολοσειράς, εφόσον υπάρχει στην αρχή ή στο τέλος της.

" hello ".strip
# => "hello"

String#index

Η μέθοδος index μπορεί να χρησιμοποιηθεί για να βρεις τη θέση ενός χαρακτήρα σε μια συμβολοσειρά. Η μέθοδος index δέχεται ως όρισμα μια String, ένα Char ή μια κανονική έκφραση. Μπορεί να δεχτεί ένα προαιρετικό δεύτερο όρισμα που καθορίζει τη θέση από την οποία θα ξεκινήσει η αναζήτηση. Η μέθοδος index επιστρέφει τη θέση της πρώτης εμφάνισης του ορίσματος.

"hello".index("l")
# => 2

"hello".index("l", 3)
# => 3

String#delete_at

Μπορείς να χρησιμοποιήσεις τη μέθοδο delete_at για να αφαιρέσεις έναν χαρακτήρα από μια συμβολοσειρά. Η μέθοδος delete_at δέχεται ως όρισμα μια θέση και αφαιρεί τον χαρακτήρα που βρίσκεται σε αυτή τη θέση.

"hello".delete_at(0)
# => "ello"

"hello".delete_at(3)
# => "helo"

String#insert

Η μέθοδος insert μπορεί να χρησιμοποιηθεί για να εισάγεις μια συμβολοσειρά σε μια συγκεκριμένη θέση. Η μέθοδος insert δέχεται ως πρώτο όρισμα μια θέση και ως δεύτερο όρισμα μια συμβολοσειρά. Η μέθοδος insert επιστρέφει μια νέα συμβολοσειρά όπου το δεύτερο όρισμα έχει εισαχθεί στη θέση αυτή.

"hello".insert(0, "h")
# => "hhello"

"hello".insert(3, "l")
# => "helllo"

Οδηγίες

Σε αυτήν την άσκηση, θα βοηθήσεις ερωτευμένα ζευγάρια από τα σχολικά τους χρόνια να διακηρύξουν τον έρωτά τους στα μέσα κοινωνικής δικτύωσης, δημιουργώντας μια καρδιά ASCII με τα αρχικά τους:

❤ J.  +  M. ❤

1. Καθάρισε το όνομα

Υλοποίησε τη μέθοδο HighSchoolSweetheart.clean_up_name. Πρέπει να παίρνει ένα όνομα, να αφαιρεί από αυτό όλους τους χαρακτήρες - και να τους αντικαθιστά με ένα διάστημα. Πρέπει επίσης να αφαιρεί τυχόν κενά από την αρχή και το τέλος του ονόματος.

HighSchoolSweetheart.clean_up_name("Jane-Ann")
# => "Jane Ann"

2. Πάρε το πρώτο γράμμα του ονόματος

Υλοποίησε τη μέθοδο HighSchoolSweetheart.first_letter. Πρέπει να παίρνει ένα όνομα και να επιστρέφει το πρώτο του γράμμα. Φρόντισε να ξαναχρησιμοποιήσεις τη μέθοδο HighSchoolSweetheart.clean_up_name που όρισες στο προηγούμενο βήμα.

HighSchoolSweetheart.first_letter("Jane")
# => "J"

3. Μορφοποίησε το πρώτο γράμμα ως αρχικό

Υλοποίησε τη μέθοδο HighSchoolSweetheart.initial. Πρέπει να παίρνει ένα όνομα και να επιστρέφει το πρώτο του γράμμα, κεφαλαίο, ακολουθούμενο από τελεία. Φρόντισε να ξαναχρησιμοποιήσεις τη μέθοδο HighSchoolSweetheart.first_letter που όρισες στο προηγούμενο βήμα.

HighSchoolSweetheart.initial("Robert")
# => "R."

4. Βάλε τα αρχικά μέσα στην καρδιά

Υλοποίησε τη μέθοδο HighSchoolSweetheart.pair. Πρέπει να παίρνει δύο ονόματα και να επιστρέφει τα αρχικά με καρδιές emoji γύρω τους. Φρόντισε να ξαναχρησιμοποιήσεις τη μέθοδο HighSchoolSweetheart.initial που όρισες στο προηγούμενο βήμα.

HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => "❤ B.  +  R. ❤"
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Crystal Exercism

Έτοιμος να ξεκινήσεις την άσκηση Ο έρωτας του λυκείου;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Crystal με 26 έννοιες142 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.