Η String διαθέτει αρκετές μεθόδους που μπορούν να χρησιμοποιηθούν για τον χειρισμό συμβολοσειρών.
Αυτές οι μέθοδοι καλούνται πάνω στην ίδια τη συμβολοσειρά και συχνά συνδυάζονται αλυσιδωτά για να εκτελέσουν πολλαπλές πράξεις σε μια συμβολοσειρά.
Ακολουθεί μια λίστα με μερικές από τις πιο συνηθισμένες μεθόδους.
Δες την τεκμηρίωση του API της String για μια πλήρη λίστα μεθόδων.
Η μέθοδος upcase επιστρέφει μια νέα συμβολοσειρά όπου όλοι οι χαρακτήρες έχουν μετατραπεί σε κεφαλαία.
"hello".upcase
# => "HELLO"
Η μέθοδος downcase επιστρέφει μια νέα συμβολοσειρά όπου όλοι οι χαρακτήρες έχουν μετατραπεί σε πεζά.
"HELLO".downcase
# => "hello"
Η Crystal διαθέτει μεθόδους για την αντικατάσταση τμημάτων μιας συμβολοσειράς.
Αυτές είναι οι sub (υποκατάσταση) και gsub (καθολική υποκατάσταση).
Αυτές οι μέθοδοι δέχονται ως πρώτο όρισμα μια συμβολοσειρά, έναν χαρακτήρα ή μια κανονική έκφραση και ως δεύτερο όρισμα μια συμβολοσειρά ή έναν χαρακτήρα.
Το πρώτο όρισμα είναι το τμήμα της συμβολοσειράς που θα αντικατασταθεί, και το δεύτερο όρισμα είναι η αντικατάσταση.
Το Char και οι κανονικές εκφράσεις θα εξηγηθούν σε επόμενες έννοιες.
Η μέθοδος sub αντικαθιστά την πρώτη εμφάνιση του πρώτου ορίσματος με το δεύτερο όρισμα.
"hello".sub("l", "r")
# => "herlo"
Η μέθοδος gsub λειτουργεί όπως η sub, αλλά αντικαθιστά όλες τις εμφανίσεις του πρώτου ορίσματος με το δεύτερο όρισμα.
"hello".gsub("l", "r")
# => "herro"
Οι chomp και strip μπορούν να χρησιμοποιηθούν για να αφαιρέσεις ανεπιθύμητους χαρακτήρες από μια συμβολοσειρά.
Η μέθοδος chomp αφαιρεί από προεπιλογή τους τελευταίους χαρακτήρες \r, \n ή \r\n από μια συμβολοσειρά.
Αν η μέθοδος κληθεί με ένα όρισμα, θα αφαιρέσει τη συγκεκριμένη τιμή από το τέλος της συμβολοσειράς, εφόσον αυτή υπάρχει εκεί.
"hello\n".chomp
# => "hello"
"hello".chomp("llo")
# => "he"
Από προεπιλογή, η μέθοδος strip αφαιρεί όλα τα κενά διαστήματα από την αρχή και το τέλος μιας συμβολοσειράς.
Αν η μέθοδος κληθεί με ένα όρισμα, θα αφαιρέσει αυτό το όρισμα από την αρχή και το τέλος της συμβολοσειράς, εφόσον υπάρχει στην αρχή ή στο τέλος της.
" hello ".strip
# => "hello"
Η μέθοδος index μπορεί να χρησιμοποιηθεί για να βρεις τη θέση ενός χαρακτήρα σε μια συμβολοσειρά.
Η μέθοδος index δέχεται ως όρισμα μια String, ένα Char ή μια κανονική έκφραση.
Μπορεί να δεχτεί ένα προαιρετικό δεύτερο όρισμα που καθορίζει τη θέση από την οποία θα ξεκινήσει η αναζήτηση.
Η μέθοδος index επιστρέφει τη θέση της πρώτης εμφάνισης του ορίσματος.
"hello".index("l")
# => 2
"hello".index("l", 3)
# => 3
Μπορείς να χρησιμοποιήσεις τη μέθοδο delete_at για να αφαιρέσεις έναν χαρακτήρα από μια συμβολοσειρά.
Η μέθοδος delete_at δέχεται ως όρισμα μια θέση και αφαιρεί τον χαρακτήρα που βρίσκεται σε αυτή τη θέση.
"hello".delete_at(0)
# => "ello"
"hello".delete_at(3)
# => "helo"
Η μέθοδος insert μπορεί να χρησιμοποιηθεί για να εισάγεις μια συμβολοσειρά σε μια συγκεκριμένη θέση.
Η μέθοδος insert δέχεται ως πρώτο όρισμα μια θέση και ως δεύτερο όρισμα μια συμβολοσειρά.
Η μέθοδος insert επιστρέφει μια νέα συμβολοσειρά όπου το δεύτερο όρισμα έχει εισαχθεί στη θέση αυτή.
"hello".insert(0, "h")
# => "hhello"
"hello".insert(3, "l")
# => "helllo"
Σε αυτήν την άσκηση, θα βοηθήσεις ερωτευμένα ζευγάρια από τα σχολικά τους χρόνια να διακηρύξουν τον έρωτά τους στα μέσα κοινωνικής δικτύωσης, δημιουργώντας μια καρδιά ASCII με τα αρχικά τους:
❤ J. + M. ❤
Υλοποίησε τη μέθοδο HighSchoolSweetheart.clean_up_name.
Πρέπει να παίρνει ένα όνομα, να αφαιρεί από αυτό όλους τους χαρακτήρες - και να τους αντικαθιστά με ένα διάστημα.
Πρέπει επίσης να αφαιρεί τυχόν κενά από την αρχή και το τέλος του ονόματος.
HighSchoolSweetheart.clean_up_name("Jane-Ann")
# => "Jane Ann"
Υλοποίησε τη μέθοδο HighSchoolSweetheart.first_letter.
Πρέπει να παίρνει ένα όνομα και να επιστρέφει το πρώτο του γράμμα.
Φρόντισε να ξαναχρησιμοποιήσεις τη μέθοδο HighSchoolSweetheart.clean_up_name που όρισες στο προηγούμενο βήμα.
HighSchoolSweetheart.first_letter("Jane")
# => "J"
Υλοποίησε τη μέθοδο HighSchoolSweetheart.initial.
Πρέπει να παίρνει ένα όνομα και να επιστρέφει το πρώτο του γράμμα, κεφαλαίο, ακολουθούμενο από τελεία.
Φρόντισε να ξαναχρησιμοποιήσεις τη μέθοδο HighSchoolSweetheart.first_letter που όρισες στο προηγούμενο βήμα.
HighSchoolSweetheart.initial("Robert")
# => "R."
Υλοποίησε τη μέθοδο HighSchoolSweetheart.pair.
Πρέπει να παίρνει δύο ονόματα και να επιστρέφει τα αρχικά με καρδιές emoji γύρω τους.
Φρόντισε να ξαναχρησιμοποιήσεις τη μέθοδο HighSchoolSweetheart.initial που όρισες στο προηγούμενο βήμα.
HighSchoolSweetheart.pair("Blake Miller", "Riley Lewis")
# => "❤ B. + R. ❤"
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Crystal με 26 έννοιες142 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.